我有一个包含100个字段的Base类和一个包含2个字段的Derived类。我希望通过调用Base类中的getter来在Derived类中访问所有100个字段,这就是为什么我使用继承而不是组合。在Derived中我想要一个构造函数来初始化Base:
中的所有内容class Base {
... // 100 fields.
}
class Derived extends Base {
... // 2 more fields.
Derived (Base base) {
... // Initialize here all 100 fields from base. Don't care about my 2 fields, can have default values.
}
}
答案 0 :(得分:6)
如果你需要从其他具有相同属性(或多或少)的bean填充bean,你肯定可以在这里找到一些东西:
http://commons.apache.org/proper/commons-beanutils/
具体地
我猜BeanUtils.copyProperties(Object orig, Object dest)
可以满足您的需求,而无需复制所有字段。
答案 1 :(得分:0)
如果Constructor
类中已经存在Base
来初始化您奇怪的字段数量,那么您可以调用super
并访问该构造函数。
示例
public class Parent {
public Parent(String field1, String field2) {
// Creates parent.
}
}
public class Child extends Parent {
public Child(String field1, String field2)
{
super(field1, field2);
}
}