public class Something { public static void main(String[] args) { Other o = new Other(); o.i = 100; o.addOne(o); System.out.println(o.i); } } class Other { int i; public void addOne(final Other o) { o.i++; } }
以上执行结果为101。
第一点:不要怀疑,上面的final Other中的i是可以修改的。
第二点:o.addOne(o);中传递的确实是o.i为100的值o.i++之后变成了101。