标题: 局部匿名内部类的问题,谁帮忙解答下 [打印本页] 作者: 余明辉 时间: 2012-8-4 23:30 标题: 局部匿名内部类的问题,谁帮忙解答下 public class Test {
public static void main(String[] args) {
new Test().method("haha");
}
public void method(final String name) { //为什么这里的参数一定要是final才能都传给内部类用呢
new Thread(new Runnable() {
public void run() {
System.out.println(name);
}
}).start();
}
}
还有final修饰的变量,是存放在栈上面吗?还是存放在别的什么地方?作者: 樊占江 时间: 2012-8-4 23:34
因为Java采用了一种copy local variable 的方式来实现,也就是说把定义为final的局部变量拷贝过来用,而引用的也可以拿过来用,只是不能重新赋值。从而造成了可以access local variable的假象