Why final is not applied for Map ? | |
|---|---|
| Prabhat Ranjan Ranch Hand Joined: Oct 04, 2006 Posts: 374 |
posted 2010年11月16日 GMT+8下午8:00:19
|
| Matthew Brown Bartender Joined: Apr 06, 2010 Posts: 4115
4
|
posted 2010年11月16日 GMT+8下午8:02:20
|
| Paul Sturrock Bartender Joined: Apr 14, 2004 Posts: 10336 |
posted 2010年11月16日 GMT+8下午8:09:12
|
如果要实现HashMap不可被修改,即如果不可变类的成员变量是可变的(譬如HashMap),我们需要使用深拷贝(deep copy)或者克隆来防止成员变量被更改:
private
final
HashMap testMap;
……
……
……
/**
* 可变对象的访问方法
*/
public
HashMap getTestMap() {
//return testMap;
return
(HashMap) testMap.clone();
}
本文探讨了Java中final修饰符的应用,特别是针对HashMap的使用限制。解释了final修饰符只限制引用不可改变,并不影响其指向的对象状态变化。同时介绍了如何通过深拷贝或克隆方法实现HashMap的不可变性。
4843

被折叠的 条评论
为什么被折叠?



