没问题.
因为在 addOne中.fina的是0.
而修改的是o的成员变量.
- <p>public class Something {
- public static void main(String[] args) {
- Other o = new Other();
- new Something().addOne(o);
- System.out.println(o.i);//输出为1
- }
- public void addOne(final Other o) {
- o.i++;
- }
- }
- class Other {
- public int i=0;//给i赋值
- }</p>
复制代码 public class Something
{
public int addOne(final int x)
{
return ++x; //这样就是错误的,因为修改的是x,而x被final修饰了
}
}
|