首页 > 解决方案 > 隐式设置基类的所有字段的方法

问题描述

我有一个基类和一个扩展它的类。派生类通常只是添加另一个属性的包装器。我想通过在构建器方法中给它基类来初始化派生类。

@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”开头的方法,但 bool 的 getter 通常以“is”开头,无论如何这似乎是一种不稳定的方式。这有一个好的模式吗?

标签: java

解决方案


推荐阅读