我在某种程度上感到愚蠢地问这个问题,但是
为什么不能使用EnhancedForStatementList
手动更改对象的引用?
private static List<String> list = new ArrayList<String>();
public static void main(String[] args) {
list.add("AAA");
list.add("BBB");
list.add("CCC");
for(String s : list){
if(s.equals("BBB")) s = "QQQ";
}
System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)
将打印,[AAA, BBB, CCC]
因为对第二个元素的引用没有改变,正如人们所预料的那样.
但是为什么我不允许(或者是List
错误的类型?)手动更改列表条目的引用?此示例中的字符串可以是任何复杂类型,此问题与更改a中的引用有关List
.
编辑:好的,也许很清楚为什么它的工作方式有效,但我怎样才能完成参考变更?我无法相信任何子类型都List
无法改变任何元素的引用.
edit2:所以在使用EnhancedForStatement时无法更改引用?
归档时间: |
|
查看次数: |
90 次 |
最近记录: |