我想desrcibe我的問題用一個例子:Java:始終具有相同內容的對象?
Base.java:
public class Base {
//NO annotations
public AnyClass anyObj;
public Base(){}
}
DerivedOne的.java:
public class DerivedOne extends Base{
@SomeAnnotionsOne
public AnyClass anyObjWithAnnotations;
public DerivedOne (AnyClass anyObj){
this.anyObj = anyObj;
anyObjWithAnnotations = this.anyObj;
}
}
DerivedTwo.java:
public class DerivedTwo extends Base {
//These annoations differ from @SomeAnnotionsOne
@SomeAnnotionsTwo
public AnyClass anyObjWithAnnotations;
public Derived_Two(AnyClass anyObj){
this.anyObj = anyObj;
anyObjWithAnnotations = this.anyObj;
}
}
所以我只是想anyObjWithAnnotations
總是等於anyObj
。
實施例主要:
public static void main(String[] args){
DerivedOne derivedObj = new DerivedOne(new AnyClass());
derivedObj.anyObj = null;
if(derivedObj.anyObjWithAnnotations == null){
System.out.println("anyObjWithAnnotations : is null");
}
}
沒有被打印。 anyObj
是null
,anyObjWithAnnotations
不是。
我的問題:
難道anyObj
總是一樣anyObjWithAnnotations
?
所以,即使我把其中一個null
或創建AnyClass
新實例new
其他變量應該具有相同的新內容。
編輯:
更改整個例子來闡明該問題。
'myObj1 = myObj2' ??爲什麼你想要兩個完全相同的值的兩個不同的對象? – luk2302
您可以對這兩個對象使用相同的參考。 –
@ luk2302這對我不起作用..'myObj2:is null'永遠不會被打印出來..這是一個非常特殊的情況下使用XML註釋:myObj1是在基類中定義的,我需要它在派生類中 – Truntle