将java对象/类从一个类加载器复制到另一个类加载器

Mar*_*ior 8 java copy javabeans classloader

您有没有办法将一个类加载的上下文(atrributes等)从一个类加载器(例如'make'class Point)复制到另一个类加载器?

说清楚,示例:我在CL 1上有一个对象Point.现在在另一个CL2上运行,我想在CL 3中创建这个对象.

一些obj:

class Point {
int x;
int y;
public Point() {}
//getters and setters
Run Code Online (Sandbox Code Playgroud)

风景:

... 
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();
Run Code Online (Sandbox Code Playgroud)

但我不能使用sun.reflection(不可用),并且序列化不起作用,因为CL2使用CL 1自动"重建"对象.

我尝试的一个解决方案是做一个"100%"java反射rconstruct,基本上从CL2获取对象的字段并设置新的obj.

PS:它需要在Java 1.4.2上运行:'(

mha*_*ler 7

如果需要执行以下操作之一,请参阅Transloader,了解如何在ClassLoader之间复制类:

  • 从几个ClassLoader到另一个ClassLoader 克隆几乎任何对象图

  • 从外部ClassLoader获取任何对象并在其上调用任何方法而不克隆它