现在有一个匿名的内部类要利用外部类中的局部变量(内部类也在此函数中定义),读取局部变量并要重新赋值局部变量,但是貌似内部类只能利用外部类中的final变量,但是final变量又不能多次赋值。
啊,好烦好烦
求方法
啊,好烦好烦
求方法
解决方案 »
- [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'ppc' 登录失败。
- AWT中在打开一个窗体后如何关闭前一个窗体?
- 哪位大大有知道文思创新(大连)的薪水和待遇情况的吗 ?
- sql2000中的类型转换问题
- 初来咋到,先报个到
- 新手的无奈!!!!!!!!
- poi操作word没有教程吗
- java 解难
- 有没有地方下载中文或英文的Visual Age for Java 3.5的教程?谢谢!
- 关于Java把从文件中的读出的内容赋给ArrayList集合的问题
- java里的Vector问题,貌似是static的问题。。。
- 在非EDT线程访问同步方法里的Swing组件安全的不?
//如果局部变量不需要传出外部类,只是需要使用它的指,
//那么可以在内部类定一个属性,然后内部类使用该属性就可以了,如
void test() {
final String name = "test";
class inner {
String innername;
{innername=name;} //定一个属性
public void innertest() {
System.out.println(innername); //内部类的方法使用属性
}
}; inner i = new inner();
inner.innertest();
}//如果需要内部类修改局部变量,并且能传到外部类,那么
//因为final只是不能改变它的指向,但是可以改变它的属性,所以你可以用数组来代替,比如
void test() {
final String[] name = {"test"};
class inner {
public void innertest() {
name[0] = "innertest";
}
}; inner i = new inner();
i.innertest();
System.out.println(name[0]);
}
如果能定义内部类,而不是一定要匿名类的话,传递参数的方法就多了,你可以直接setXXOO();甚至可以用构造函数:void test() {
String name = "test";
class inner {
String innername;
public inner (String name) {
this.innername = name;
}
public void innertest() {
System.out.println(innername); //内部类的方法使用属性
}
}; inner i = new inner(name);
inner.innertest();
}