import java.util.HashMap;
import java.util.Map;
public class parent {
}
public class child1 extends parent {
private String id;
private String name;
// getter & setter
}
public class child2 extends parent {
private String id;
private String name;
// getter & setter
}
public class demo {
public child1 copytoc1(Map m, child1 c) {
c.setid(m.get("id"));
c.setName(m.get("name"));
}
public child2 copytoc2(Map m, child2 c) {
c.setid(m.get("id"));
c.setName(m.get("name"));
}
public static void main(String args[]){
demo d =new demo();
Map m=new HashMap();
m.set("id","1");
m.set("name","1name");
d.copytoc1(m,new child1);
m.set("id","2");
m.set("name","2name");
d.copytoc1(m,new child2);
}
}
我想避免copytoc1
和copytoc2
方法,它們是綁定的對象類型想要編寫類似public T copy(Map m, T t)
的通用複製方法,但無法使其工作。這裏簡單地說明如何避免乾燥。如何在Java對象設置器中關注DRY?
注:我使用的JDK7
您的代碼不似乎有效,不要認爲它編譯(您的複製方法不返回任何內容)。請張貼有效的代碼。 – sstan
它的設計問題,我想避免d.copytooc1()d.copytooc2(),因爲它們是相同的代碼塊。我想要避免相同的重複代碼。 – learningJava