当前位置: 技术问答>java相关
请问如何在一个函数内部定义的一个新类中使用函数里声明的变量
来源: 互联网 发布时间:2015-04-29
本文导语: 我在void openfile()有int first,和RandomAccessFile in等变量。现在我要在此函数内部定义一个新类 MouseListener mouseListener = new MouseAdapter() { public void mouseClicked(MouseEvent e) { 我要在这里用到first和in,还...
我在void openfile()有int first,和RandomAccessFile in等变量。现在我要在此函数内部定义一个新类
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
我要在这里用到first和in,还有openfile函数外的一个函数getGenSeq();该怎么办?
}
};
我直接用编译出现这样的错误"SeqAnalysisFrame.java": Error #: 480 : local variable in is accessed from within inner class; needs to be declared final at line 394, column 18
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
我要在这里用到first和in,还有openfile函数外的一个函数getGenSeq();该怎么办?
}
};
我直接用编译出现这样的错误"SeqAnalysisFrame.java": Error #: 480 : local variable in is accessed from within inner class; needs to be declared final at line 394, column 18
|
编译器不是告诉你了么,
把int first和RandomAccessFile in等变量设成final即可。
至于openfile()外的函数可直接调用。
把int first和RandomAccessFile in等变量设成final即可。
至于openfile()外的函数可直接调用。
|
方法2:
把实现的代码写在一个外部函数中
在内部类中调此函数即可。
如果需要传递临时变量,只要在内部函数的参数申明中加上final即可,注意,此变量不能在内部类中赋值
把实现的代码写在一个外部函数中
在内部类中调此函数即可。
如果需要传递临时变量,只要在内部函数的参数申明中加上final即可,注意,此变量不能在内部类中赋值