x***n 发帖数: 70 | 1 请看下面几行简单的代码:
1 TreeMap treeMap = new TreeMap
Integer> ();
2 treeMap.put("Good", 136);
3 Map.Entry e = null;
4 e = treeMap.firstEntry();
5 e.setValue(23);
6 Set> el = treeMap.entrySet();
7 for( Map.Entry e1 : el ) {
8 e1.setValue(23);
9 }
第5行处,报错:java.util.AbstractMap$SimpleImmutableEntry.setValue(Unknown
Source)
但是,第8行处,是类似的操作,却能正常执行。
请问这是为什么?谢谢! |
g*****g 发帖数: 34805 | 2 when you call firstEntry, it calls this in turn.
Basically entry is wrapped to be immutable. While
that's not the case when using entrySet.
static Map.Entry exportEntry(Entry entry)
{
return entry != null ? new AbstractMap.SimpleImmutableEntry(entry) :
null;
}
【在 x***n 的大作中提到】 : 请看下面几行简单的代码: : 1 TreeMap treeMap = new TreeMap: Integer> (); : 2 treeMap.put("Good", 136); : 3 Map.Entry e = null; : 4 e = treeMap.firstEntry(); : 5 e.setValue(23); : 6 Set> el = treeMap.entrySet(); : 7 for( Map.Entry e1 : el ) { : 8 e1.setValue(23);
|
x***n 发帖数: 70 | 3 I see. Thanks a lot!
:
【在 g*****g 的大作中提到】 : when you call firstEntry, it calls this in turn. : Basically entry is wrapped to be immutable. While : that's not the case when using entrySet. : static Map.Entry exportEntry(Entry entry) : { : return entry != null ? new AbstractMap.SimpleImmutableEntry(entry) : : null; : }
|
B*****g 发帖数: 34098 | 4 学习了
:
【在 g*****g 的大作中提到】 : when you call firstEntry, it calls this in turn. : Basically entry is wrapped to be immutable. While : that's not the case when using entrySet. : static Map.Entry exportEntry(Entry entry) : { : return entry != null ? new AbstractMap.SimpleImmutableEntry(entry) : : null; : }
|