【发布时间】:2015-07-11 02:00:37
【问题描述】:
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) 的通用复制方法但不能使其工作。在这里简单介绍如何避免 DRY。
注意:我使用的是jdk7
【问题讨论】:
-
您的代码似乎无效,不要认为它可以编译(您的复制方法不返回任何内容)。请发布有效的代码以开始。
-
这是一个设计问题,我想避免 d.copytooc1 () d.copytooc2 () 本质上是相同的代码块。我想避免相同的重复代码。