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