书上说:
在main()中,建立一个AlwaysEven对象,它必须是final的,因为他要被一个继承自Thread的匿名内部类所访问,如果线程读出的值不是偶数,它将把这个值打印出来(以证明它捕获了对象的不稳定状态),并退出程序
这里:
为什么要是final,不为final行不行...
还有...请教下怎么学习线程会好一点
------解决方案--------------------
局部类访问的局部变量,必须被声明为final。这个是语法。
eg。
public class Test {
public void start() {
final int t = 0; // start的局部变量
class Test2 implements ActionListener{ //局部类 --内部类的一种
public void actionPerformed(ActionEvent e) {
if(t==0){
System.out.print(t);
}
}
}
}
}
------解决方案--------------------
请找前面的帖子,大概有一周以上了
这个是处于安全的考虑
局部内部类要使用局部变量是需要变量是final的,出于安全的考虑