我想創建一個變量,指向不同的引用變量指向的任何內容,以便如果我更改引用變量指向的位置,指針變量也會自動指向該新位置。如何在Java中爲參考變量創建指針變量?
例如,假設我認爲我最喜歡的書是當地圖書館最喜歡的書。如果我的圖書館改變他們最喜歡的書,我會自動認爲這是我最喜歡的書。
下面是一些代碼來證明我的意思:
Book littleWomen = new Book("Little Women");
Book dracula = new Book("Dracula");
Book libraryFavourite = litteWomen;
Book myFavourite = libraryFavourite; //myFavoutie is now littleWomen
libraryFavourite = dracula; //i want myFavourite to update to point to dracula, now.
在上面的代碼,改變什麼libraryFavourite
點不會自動改變什麼myFavourite
點。它保持指向littleWomen
。
我明白爲什麼上面的代碼不起作用,因爲我在說我「想要」它。據我所知,參考變量包含內存地址,因此myFavourite = libraryFavourite
只是將libraryFavourite
指向的內存地址指定爲myFavourite
,因此未來更改爲libraryFavourite
不會更改myFavourite
。我只包含上面的代碼來幫助闡明我想要的行爲,但明白我需要一種不同的方法來實現。
This鏈接有關別名類別的討論(和收到的答案基本上是它不能完成)。然而,別名並不完全是我想要做的,因爲我想要自由地改變myFavourite
來停止指向圖書館最喜歡的書,而是指向其他的東西(例如,我最近發現的一些新書,愛上了)。
這被故意排除在語言之外,如許多其他語言一樣。 – user2357112 2014-10-28 01:04:37
你的用例是什麼? – 2014-10-28 01:06:18
這是直接關係到[Java是「通過引用傳遞」還是「按值傳遞」?](http://stackoverflow.com/q/40480/1065197) – 2014-10-28 01:10:44