您好,有没有一种方法可以将一个类加载的上下文(属性等)从一个类加载器(例如“制作的”类点)复制到另一个类加载器?
明确地说, 例子: 我在 CL 1 上有一个对象点。 现在在另一个 CL2 上运行,我想在 CL 3 中创建这个对象。
一些对象:
class Point {
int x;
int y;
public Point() {}
//getters and setters
风景:
...
class CL2 {
// Running on CL 2
...
// Point obj from CL 1
Object point = gotFromCL1();
// Want to create the object on Cl2
Object pointCL2 = point.conversion();
但我不能使用 sun.reflection(不可用)并且序列化不起作用,因为 CL2 会自动使用 CL 1“重建”对象。
我认为的一个解决方案是执行“100%”java 反射 rconstruct,基本上从 CL2 获取对象字段并在新对象上设置。
PS: 它需要在 Java 1.4.2 上运行:'(
最佳答案
参见 Transloader关于如何在类加载器之间复制类,如果您需要执行以下操作之一:
克隆从一个类加载器到另一个类加载器的几乎任何对象图
从外部 ClassLoader 获取任何对象并在其上调用任何方法而不克隆它
关于java - 将 java 对象/类从一个类加载器复制到另一个类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735714/