我有一个如下所示的界面:
public interface IMetaFactory {
String imageId = new String();
// some default methods
void setImageId(String id);
default String getImageId() {
return imageId;
}
}
我需要在此界面中添加一个克隆方法,以便在我调用时:
IMetaFactory mf = metafactory.clone();
它会返回IMetaFactory
的新副本,以便我可以在其中设置新的imageID
。
mf.setImageId("abc");
我如何实现它?接口内的克隆方法只是溢出堆栈(显然)。
答案 0 :(得分:-2)
我认为你可以使用抽象clone()方法的抽象类,每个类从该抽象类继承实现clone方法并返回:
public abstract class MetaFactory {
String imageId = new String();
// some default methods
void setImageId(String id);
default String getImageId() {
return imageId;
}
public abstract MetaFactory clone();
}
并且在任何继承的类中实现抽象类,如下所示:
public class A extends MetaFactory {
//the lone method implementation
public MetaFactory clone(){
return this;
}
}