我有一个抽象类,它主要被实例化为匿名内部类,在那里实现了抽象方法。这些实例被传递,因此在代码中的不同位置,我想获得其中一个实例的副本,一个新实例,但方法以相同的方式实现。这是我的代码示例:
public abstract class AbstractClass {
String id;
Entity owner;
public AbstractClass(String id){
this.id=id;
}
public Mover(){
id="This is an id";
}
abstract void update();
}
我这样实例化它:
AbstractClass instance= new AbstractClass("This is a test"){
void update(){
//do stuff
}
}
稍后,我想要该实例的副本,而不是引用,其中 update() 执行相同的操作,但所有者将是不同的实体。我尝试使用反射 (.getClass.newInstance()),但我得到了 java.lang.InstantiationException。为什么这不起作用,有没有更好的方法来做我正在做的事情?