-2
在類的實例方法中是否有任何方式來更改當前實例指向的內容?將當前實例設置爲同一對象的不同實例
這是我試過到目前爲止:
public class Test {
String name;
Test other;
public Test(String name) {
this.name = name;
}
public void setOther(Test test) {
this.other = test;
}
public void printName(){
System.out.println(this.name);
}
public void testMeOut(){
changeInstance(this, other);
printName();
}
public static void changeInstance(Test instance1, Test instance2) {
instance1 = instance2;
}
}
和我用於測試的測試類類:
public class TestingTest {
public static void main(String[] args) {
Test test1 = new Test("Test1");
test1.setOther(new Test("test2"));
test1.testMeOut();
test1.printName();
}
}
我預計輸出爲「測試2」,但麻煩printName()方法打印出「測試1」
由於被傳入的對象是通過引用不應該第一個實例成爲第二個實例嗎?有沒有什麼辦法可以做到這一點?
爲什麼downvotes? – yitzih
你認爲'this.other = test;'是做什麼的?你爲什麼這麼認爲?請也澄清你的想法_因爲傳入的對象是通過引用_手段。另外,你認爲實例成爲另一個實例是什麼意思。基本上,這很有意義,這就是爲什麼你收到降價。 –
你並沒有真正改變實例。您只需將數據成員設置爲另一個實例即可。當你調用你的更改實例方法時,名稱不會改變 – Li357