为什么JAVA中不能引用另一方法中定义的内部类中非终态变量

如题所述

江水源 应该说的是正解,java中的局部内部类,也就是在累的方法中定义的内部类如果要使用外部类的局域变量(不是属性字段),或者是使用声明这个内部类的方法参数,那么要求参数应该是final修饰的
想你说的 另一个方法中的内部类中的变量是不可能在其它的方法中访问的,即局部内部类不能被在该方法之外的地方被使用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-02
有这个说法吗?

是说的内部类如果要引用外部类定义的变量,则此变量必须为final的。不然会有这个错误:
Cannot refer to a non-final variable ***inside an inner class defined in a different method。

你说的那个情况是啥情况啊?
第2个回答  2012-06-02
可能是权限的访问问题和作用域的原因

安卓编程怎么获取edittext内容并在textview中显示
public void onClick(View v) { }});里面

java面试题大全带答案(java面试题精选)
答案:final是Java中的关键字,有“无法改变”、“终态”的含义,final类不能被继承,没有子类,final类中的方法默认是final的,且不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法。下面的例子中,const_val被声明且赋值为常量100:PrivateFinalint...

Java基础封装继承多态
单独给外部开放设置名称的方法,因为我还需要做一些额外的处理,所以说不能给外部直接操作成员变量的权限! 封装思想其实就是把实现细节给隐藏了,外部只需知道这个方法是什么作用,而无需关心实现。 封装就是通过访问权限控制来实现的。继承 继承属于非常重要的内容,在定义不同类的时候存在一些相同属性,为了方便使用可以将...

Java面试题,常见面试题及答案汇总
答案: final是Java中的关键字,有“无法改变”、“终态”的含义,final类不能被继承,没有子类,final类中的方法默认是final的,且不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法。下面的例子中,const_val被声明且赋值为常...

相似回答