代码1
for(Class classElement : classes) {
classElement = String.class;
}
代码2
for(int i = 0; i < classes.length; i++) {
classes[i] = String.class;
}
Code1
以{null,null}结束但Code2
{String.class,String.class}。那么为什么Code1
的分配失败了?
答案 0 :(得分:3)
因为你的第一个例子:
for(Class classElement : classes) {
classElement = String.class;
}
等同于:( _hidden_i
是编译器添加的&#34;不可见&#34;变量)
for(int _hidden_i = 0; _hidden_i < classes.length; _hidden_i++) {
Class classElement = classes[_hidden_i];
classElement = String.class;
}
显然没有修改classes
的内容。