rt
客户端请求授权后服务端 Socket 发送一个类给客户端下载 但问题是该类还有一个内部类。如果直接 newInstance 就会出现 NoClassDefFoundError 的情况
这可如何解决呢。。看了一下 没有相关的预加载的方法
1
1010543618 2018 年 11 月 18 日
发送一个类?
|
2
Aidenboss 2018 年 11 月 18 日
是程序运行以后才接收到 Socket 发送的类,才调用 newInstance() 的话,可能需要自定义 ClassLoader 才行。
|
3
ljzxloaf 2018 年 11 月 19 日
是通过传输 class 的字节码构成这个类的吗?如果是的话需要将这个类放入当前线程上下文的 Classloader,如果跑在 tomcat 上的话一般是 WebAppClassLoader,但是因为 Classloader 的 defineClass 方法是私有方法,不能直接加载这个类的字节数组,你反射调一下就可以了。
|
4
frienmo 2018 年 11 月 22 日
你强调了 发送一个类 包含内部类。
没记错的话内部类也会变成一个 Outter$Inner.class,所以应该传 Outter.class 和 Outter$Inner.class 两个类? |