假設我們有以下幾點:Java列表<Parent>和列表<Children>方法
public class Parent{
public void setXXX(String XXX);
public String getXXX();
}
public class Children extends Parent{
....
}
現在我想創建一個像下面這樣的方法稱爲克隆列表:
public List<Something> cloneList(List<Something> original){
List<Something> newList=new ArrayList<>();
for(Something e:original){
Something newE=new Something();
newE.setXXX(e.getXXX());
newList.add(newE);
}
return newList;
}
的事情是我們要cloneList可以應用於List<Parent>
和List<Children>
,所以無論如何適用於「某事」?
東西不能「擴展父?」或「父」,由於Java的Collection<Parent>
與Collection<Children>
假設不兼容: 1.不要想用任何方式序列化或反射。
我們無法修改父類和子類。這是在第三方Jar中預定義的。
SuperParent類是不可能的,因爲在2
考慮一個事實,即您不能在您的帖子中發佈< >括號除非你將其格式化爲代碼。 – 2014-10-30 15:10:54
使用泛型... – brso05 2014-10-30 15:15:10
沒有解決方案滿足您添加的所有約束。要創建其類不是靜態已知的對象的忠實副本,您需要使用靜態已知可用的反射或方法。如果這些類已經有可用的複製方法,那麼你肯定會在你的示例代碼中使用它。 (請注意''Object.clone()'可以達到這個目的,但是隻有當類'Parent'實現'Cloneable'時,即使這樣做,Object.clone()可能會很成問題。) – 2014-10-30 16:14:03