为什么(Class classElement:classes)赋值不起作用?

时间:2015-08-24 04:52:32

标签: java

代码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的分配失败了?

1 个答案:

答案 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的内容。