我想创建一个变量,指向不同的引用变量指向的任何内容,以便如果我更改引用变量指向的位置,指针变量也会自动指向该新位置。如何在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