假设我们有:
class A {
}
以及
class B extends A {
B(A object) {
this = object; //this is not possible.
}
}
众所周知,我们无法在Java(this)中为关键字设置任何值。有没有太简单的方法来创建与A对象具有相同字段值的B对象?
答案 0 :(得分:2)
最简单的方法是逐个复制所有字段。没有更简单的方法。您可以编写一个工具来为您生成此代码。一般来说,这在Java中是可以避免的(可能因为它很痛苦并且容易出错)并且如果没有更简单的解决方案,则经常使用委派。即通常有另一种选择。
答案 1 :(得分:1)
这不能作为变量这是最后一个。所以你可以这样做:
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中使用A类,如下所示:
public class B extends A{
public B(A object) {
super(object.getHello(),object.getSomething());
}
}