如何在内部匿名类用一个外部int变量 如何在内部匿名类用一个外部int变量,而且还能在内部类里改变这个int值。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 答:直接访问并修改啊。比如代码:public class Outer { private int x=10;//外部类的int变量 Runnable r=new Runnable() { public void run() { // TODO Auto-generated method stub x=12;//匿名内部类直接访问并修改外部类的x的值啊。 } }; } 加了final 就不能在内部类里改变了 我的代码是public static void main(String[] arggg){.......int i = 0;JButton b = new JButton("");b.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){.......i ++;}}); 答:原来是这样。由于局部变量i,你不能加上final,那么只好:方法之一:若要简单,请楼主将int i=0;换一个位置,定义为:类中的一个static int i=0;就行了。若不能这样修改,则:方法之二:将int i=0;定义为对象的数据成员,并将匿名类等这些代码放到类的构造器或对象方法之中。以上仅供你参考 谢谢你我也觉得方法二能解决。但我只是刚开始学java,对大局把握不好只会把所有东西全装到main()里边。只能再加强学习了。 1 类一级的变量是可以访问的,比如class MyTest { int myNumber; // 这个可以2 方法里面的final 变量,比如 void test(){ final int aNumber; // 这个也可以,不过innerClass 必须在这个方法里面} 刚刚入门的菜鸟求教 请问:在return语句之后有没有可能写其它语句? JFrame&JPanel 没分了。一个swing的简单问题 高手帮我看一下这个java错误说明了什么?? java性能检测问题 Java 关于paintComponent与paint有什么区别?各自的特点? 如何取指定的一段字符串? 又一个关于session的问题? java后端与前端是怎么交互的? 紧急救援!!相同的算法不同的结果 为什么Set接口没有提供类似List接口的get方法来获取数据,而只能使用迭代器?
Runnable r=new Runnable()
{ public void run() {
// TODO Auto-generated method stub
x=12;//匿名内部类直接访问并修改外部类的x的值啊。
}
};
}
{
.......int i = 0;JButton b = new JButton("");
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
.......i ++;}
});
方法之一:若要简单,请楼主将int i=0;换一个位置,定义为:类中的一个static int i=0;就行了。
若不能这样修改,则:
方法之二:将int i=0;定义为对象的数据成员,并将匿名类等这些代码放到类的构造器或对象方法之中。
以上仅供你参考
我也觉得方法二能解决。
但我只是刚开始学java,对大局把握不好
只会把所有东西全装到main()里边。
只能再加强学习了。
final int aNumber; // 这个也可以,不过innerClass 必须在这个方法里面
}