public class Something {public static void main(String[] args) {Other o = new Other();ne

行业问题 公共英语 已帮助 人

public class Something {

public static void main(String[] args) {

Other o = new Other();

new Something().addOne(o);

}

public void addOne(final Other o) {

o.i++;

}

}

class Other {

public int i;

}

和上面的很相似,都是关于final 的问题,这有错吗?

热搜:st段下移呈鱼钩形改变应考虑为

答案解析

难度★★☆ 搜索
  • 正确答案:

    正确。在addOne method 中,参数o 被修饰成final。如果在addOne method 里我们修
    改了o 的reference
    (比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o 的member vairable
    (成员变量),而o 的reference 并没有改变。