Chl*_*loe 10 java anonymous-class inner-classes
内部类是Adapter,内部类是Listener.如何从Listener访问(隐藏)适配器成员/方法?
list.setAdapter(new Adapter() {
  public View getView() {
    // ...
    button.setListener(new Listener() {
      public void onClick() {
        Adapter.this.remove(item);
      }
    );
  }
});
通常要访问外部类成员,你只需要说Outer.this.member,但在这种情况下它给了我以下错误(使用实际的类):
error: not an enclosing class: ArrayAdapter
那么你应该如何从内部内部类访问内部类成员?我不喜欢多级嵌套的匿名类,但在这种情况下,我正在学习一个新的API,并且还不确定它是否更清晰.我已经有一个解决方法,但无论如何都想知道.remove()实际上并没有被内部内部类所掩盖,因此在这种情况下指定类并不是必需的,但是希望在代码中清楚地说明这个remove()方法的位置.我也想知道它是否被遮挡.我相信使用Outer.$6.remove()会起作用,但我不相信也应该这样.
skr*_*rat 13
分配this给变量,然后访问最内层的类.
list.setAdapter(new Adapter() {
  public View getView() {
    final Adapter that = this;
    button.setListener(new Listener() {
      public void onClick() {
        that.remove(item);
      }
    );
  }
});
我不确定这里有什么好的命名.也许adapter吧?
| 归档时间: | 
 | 
| 查看次数: | 1722 次 | 
| 最近记录: |