我有一个方法,其中的代码如下:
final TouchableSpan touchableSpan = new TouchableSpan() {
@Override
public void onClick(View widget) {
this.setPressed(true);
String extravar = touchableSpan.getMyVar();
}
在这行代码
String extravar = touchableSpan.getMyVar();
中,我得到了一个警告,即变量touchableSpan
可能未被初始化。为什么会出现这种情况?当我添加
final
修饰符时,就会出现此警告。在此之前,我看到的是variable is access from inner class, needs to be declared final
。
TouchableSpan
有一个类似于TouchableSpan() {this.onClick(null);}
的构造函数。 - user253751onClick()
方法确实需要访问 TouchableSpan 类之外的元素;那么你应该通过构造函数提供那个“外部元素”等。你的代码极度耦合了创建新的 TouchableSpan 对象的部分……与该类的代码。不要这样做! - GhostCatthis.getMyVar()
。 - Max Koretskyi