作为练习的一部分,我必须编写一个远程类加载器。它从服务器下载一个类,然后使用defineClass 加载它。
我所做的是这样的:
in=new ObjectInputStream(s.getInputStream());
Object o = in.readObject();
return defineClass(className,o.toString().getBytes(), 0, o.toString().length());
我得到了一个java.lang.ClassFormatError: Incompatible magic value
但是当我写这个
in=new ObjectInputStream(s.getInputStream());
byte[] classData=(byte[])in.readObject();
return defineClass(className,classData, 0, classData.length);
它按预期工作。
这是为什么?