У меня следующая проблема: я хочу отправить тип (java.lang.Class) по проводам и «определить» класс на другой стороне.
Я пытался так:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(MyClass.class);
и на принимающей стороне:
ByteArrayInputStream bis = new ByteArrayInputStream(request.getBytes());
ObjectInputStream ois = new ObjectInputStream(bis);
Class c = (Class) ois.readObject(); // ClassNotFoundException
так что, очевидно, мне нужно отправить необработанный байт-код класса и сделать
ClassLoader.defineClass(bytes, ..
но, к сожалению, я не вижу, как я могу получить байт-код загруженного класса.
Я ищу что-то вроде:
byte[] byteCode = MyClass.class.toByteArray();
Возможно ли это даже со стандартным JDK или есть какая-нибудь небольшая библиотека, которая может это сделать?