首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问final

2012-01-06 
请教final书上说:在main()中,建立一个AlwaysEven对象,它必须是final的,因为他要被一个继承自Thread的匿名

请教final
书上说:
在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的,出于安全的考虑

热点排行