本人C++转过来 C++中把参数作为引用传进来常有,但为防止修改经常是
fun(const int& i)
{}
java中
class abc
{
int i=0;
}
static void funParameter(final abc i)
{
i.i=999;
}
public static void main(String[] args)
{
abc a = new abc();
funParameter(a);
System.out.print(a.i);
}
i的值竟然被修改了,什么情况?
------解决方案--------------------
static void funParameter(final abc i)
{
i.i=999;
}
这final 修饰的是"abc",里面的123 是可以改变的,但是"abc"自身不能变
如果这么改i.i=999; -->abc = new abc(); 是不能通过编译的