在匿名 class 实现中更改 public 实例的值?
Change the value of a public instance inside an anonymous class' implementation?
这是我目前正在做的事情的示例代码
Class classA{
public int changeit=1;
Button obj;
create(){
Obj.addlistener(new inputlistener(){
void touchdown(....){changeit=2;}
});
}
int getvalue(){
return changeit;
}
}
但是 getvalue()
永远不会 returns 更改值它总是 returns 1
。
请建议是否有更好的方法,或者我是否应该为 inputListener
.
创建一个子类
首先,您有一些大小写错误。通常,Java 遵循驼峰式大小写约定。其次,因为您在匿名内部 class 中,所以您必须指定您指的是哪个对象:
// inside the anonymous class
classA.this.changeit = -2;
谢谢你们抽出时间,但我终于找到了泄漏,它与任何基本原理都无关,而是人为错误。我已经注释掉了更新以位图文本形式在屏幕上绘制实例的文本的代码。
使用 logcat 调试它,这是我的发现
您可以直接更改匿名class中的实例
您不需要 this 关键字,除非实例名称当然不同。
谢谢。
这是我目前正在做的事情的示例代码
Class classA{
public int changeit=1;
Button obj;
create(){
Obj.addlistener(new inputlistener(){
void touchdown(....){changeit=2;}
});
}
int getvalue(){
return changeit;
}
}
但是 getvalue()
永远不会 returns 更改值它总是 returns 1
。
请建议是否有更好的方法,或者我是否应该为 inputListener
.
首先,您有一些大小写错误。通常,Java 遵循驼峰式大小写约定。其次,因为您在匿名内部 class 中,所以您必须指定您指的是哪个对象:
// inside the anonymous class
classA.this.changeit = -2;
谢谢你们抽出时间,但我终于找到了泄漏,它与任何基本原理都无关,而是人为错误。我已经注释掉了更新以位图文本形式在屏幕上绘制实例的文本的代码。 使用 logcat 调试它,这是我的发现 您可以直接更改匿名class中的实例 您不需要 this 关键字,除非实例名称当然不同。
谢谢。