java - 如何获取对匿名对象的引用 2 级

标签 java gwt

我有这样的代码:

TextBox txt = new TextBox(){
  public void onLoad(){
    this.addFocusHandler(new FocusHandler(){
      //some codes here
      //if I use "this" keyword, it refers to the handler, but how can I get a reference to the textbox?
    });
  }
};

问题嵌入位置。


编辑:

关于答案,创建预定义引用适用于这种情况,但这显然失去了(或至少减少了)匿名对象/函数的好处。

希望能找到一种不用创建新引用的方法。而只是从该范围获取引用。


所有的答案之后,这里是一个结论:

  • 反射在 GWT 中不起作用。 (至少我没有成功) obj.getClass() 有效,但其他类似 getMethods()getEnclosingClass() 无效.
  • 获取引用的方式可以是在正确范围内声明引用,也可以是获取更高级别的对象引用和向下引用。我更喜欢后者,因为您不需要创建新变量。

最佳答案

TextBox txt = new TextBox(){
    public void onLoad(){
        final TextBox finalThis = this;
        this.addFocusHandler(new FocusHandler(){
             finalThis.doSomething();
        );
    }
};

关于java - 如何获取对匿名对象的引用 2 级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516339/

相关文章:

java - MyBatis查询结果是HashMap吗?

java - 管理 1 个项目中的多个 Google Web Toolkit 页面

java - com.mysql.jdbc.Driver ClassNotFoundException

java - 检查 Glassfish DAS 是否正在以编程方式运行

java - 如何使用密码和盐进行 AES 加密,以便在 Java 中仅使用相同的密码和盐进行解密

Java KeyListener 永远无法工作(在 setFocusable + requestFocusInWindow 之后)

java - 卡住 Java JComponent

gwt - 如何让 GWT 弹出菜单保留在浏览器窗口中?

java - 插件更新后 Eclipse Juno 无法打开我的工作区

java - GWT:从服务器上的 CSV 文件读取