我有一个基类和一个扩展它的类。派生类通常只是添加另一个属性的包装器。我想通过在构建器方法中为其提供基类来初始化派生类。
@Data //this just generates getters/setters
public class AWrapper extends Base {
private String myNewAttribute;
public static AWrapper fromBase(Base base){
AWrapper result = new AWrapper();
// this is what I would like to ommit
this.setSomeAttributeFromBase(base.getSomeAttributeFromBase());
// .... a lot more handwritten get/set
return result;
}
}
我不想在中间部分写完所有手动设置/获取的地方,因为那意味着如果添加/删除了基类中的一个字段,我将不得不接触派生类。
我曾考虑过要获取所有以“ get”开头的方法,但布尔型的吸气剂通常以“ is”开头,无论如何这似乎都是一种怪诞的方式。有一个好的模式吗?