我正在阅读约书亚布洛赫的"有效Java",第39项制作防御性副本,我有一些问题.我总是使用以下构造:
MyObject.getSomeRef().setSomething(somevalue);
Run Code Online (Sandbox Code Playgroud)
这是短的:
SomeRef s = MyClass.getSomeRef();
s.setSomething();
MyObject.setSomeRef(s);
Run Code Online (Sandbox Code Playgroud)
它总是有效,但我想如果我getSomeRef()正在返回副本,那么我的快捷方式将不起作用,MyObject如果使用快捷方式是否安全,我怎么知道隐藏的实现是否隐藏?