从基础 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());
}
}
假设我们有:
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());
}
}