我有以下父类(super class)。
SuperOne.java
public class SuperOne{
private String id;
private String name;
//public setter and getter methods
}
SubOne.java
public class SubOne extends SuperOne{
//To Do : SubOne has no extra fields.
}
我有以下方法:
public SubOne getData(String id){
SuperOne data = someDao.getData(String id)
// Now we have result in data . Now i need to convert data into SubOne and return.
}
SuperOne.java 没有构造函数,是由第三方提供的,我无法修改。但我可以修改 SubOne,因为它是我自己的。 请建议我将 SuperOne 转换为 SubOne 的最佳方式。
最佳答案
您可以使用 SubOne
作为包装器,而不是作为子项。
class SubOne {
private SuperOne superOne;
public SubOne(SuperOne) {
this.superOne = superOne;
}
public String getId() {
return this.superOne.getId();
}
public String getName() {
return this.superOne.getName();
}
public String setId(String id) {
return this.superOne.setId(id);
}
public String setName(String name) {
return this.superOne.setName(name);
}
///////////////
public SubOne getData(String id){
SuperOne data = someDao.getData(String id)
return new SubOne(data);
}
附录
如果你坚持继承SuperOne
,你可以这样做。
class SubOne extends SuperOne {
public SubOne(SuperOne superOne) {
super.setId(superOne.getId());
super.setName(superOne.getName());
}
关于java - 将值从父类(super class)复制到子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20043244/