从基础 class 创建对象的简单方法

Easy way to create an object from base class

假设我们有:

class A {
}

还有

class B extends A {

  B(A object) {
    this = object; //this is not possible.
  }
}

众所周知,我们不能给Java中的关键字设置任何值(this)。有什么简单的方法可以创建与 A 对象具有相同字段值的 B 对象吗?

最简单的方法是一一复制所有字段。没有更简单的方法。您可以编写一个工具来为您生成此代码。通常,在 Java 中避免这种情况(可能是因为它很痛苦且容易出错)并且如果没有更简单的解决方案来解决您的问题,则经常使用委派。即通常有替代方案。

这不能作为变量,这是最后一个。所以你可以这样做:

public class A {

       private String hello;
       private String something;

       public A(String hello, String something){
          this.hello = hello;
          this.something = something;
       }

       public String getHello() {
          return hello;
       }

       public void setHello(String hello) {
          this.hello = hello;
        }

        public String getSomething() {
           return something;
        } 

        public void setSomething(String something) {
          this.something = something;
        }

}

然后您可以在 B 中使用 class A,如下所示:

  public class B extends A{

      public B(A object) {
         super(object.getHello(),object.getSomething());
      }

  }