s*y 发帖数: 472 | 1 比如说有一个getter for a Hashset.
用户call getSet(),拿到这个Hashset的reference,但是他直接可以往set里加减东西
请问如何防止别人通过setter进行这种操作?
另外相对这个set进行多线程操作,怎么用synchronized实现mutual exclusion?synch
ronized getter method理论上应该不管用吧?一旦pass给reference以后,getter的程
序就跑完了,mutual exclusion也消失了。
还请大虾指教
多谢! |
s******n 发帖数: 876 | 2 you can return a cloned map. that's not as silly as it sounds.
or see java.util.Collections.unmodifiableMap()
synch
【在 s*y 的大作中提到】 : 比如说有一个getter for a Hashset. : 用户call getSet(),拿到这个Hashset的reference,但是他直接可以往set里加减东西 : 请问如何防止别人通过setter进行这种操作? : 另外相对这个set进行多线程操作,怎么用synchronized实现mutual exclusion?synch : ronized getter method理论上应该不管用吧?一旦pass给reference以后,getter的程 : 序就跑完了,mutual exclusion也消失了。 : 还请大虾指教 : 多谢!
|
s*y 发帖数: 472 | 3 If there is a lot of data, cloning may become vey slow, right?
the unmodifiable versions of collection seems really nice!
Thanks!
【在 s******n 的大作中提到】 : you can return a cloned map. that's not as silly as it sounds. : or see java.util.Collections.unmodifiableMap() : : synch
|