【问题标题】:Change the value of a public instance inside an anonymous class' implementation?在匿名类的实现中更改公共实例的值?
【发布时间】:2015-03-06 22:22:06
【问题描述】:

这是我目前正在做的示例代码

Class classA{

    public int changeit=1;

    Button obj;

    create(){
        Obj.addlistener(new inputlistener(){
            void touchdown(....){changeit=2;}
        });
    }

    int getvalue(){
        return changeit;
    }

}

但是getvalue() 永远不会返回它总是返回1 的更改值。 请建议是否有更好的方法,或者我是否应该为inputListener 创建一个子类。

【问题讨论】:

  • 您可以剪切并粘贴您正在使用的实际代码吗?这不会编译。
  • ...而且几乎无法阅读。
  • 我认为 Java 是区分大小写的。使用InputListeneraddListener()
  • @mbomb007 和obj 也不是Obj
  • @mbomb007 和 class 不是 Class

标签: java eclipse libgdx anonymous-class


【解决方案1】:

首先,您有一些案例错误。通常,Java 遵循驼峰式大小写约定。其次,因为你在一个匿名的内部类中,你必须指定你指的是哪个对象:

// inside the anonymous class 

classA.this.changeit = -2;

【讨论】:

    【解决方案2】:

    谢谢你们的时间,但我终于得到了泄漏,它与任何基本面无关,而是人为错误。我已经注释掉了代码以更新以位图文本形式在屏幕上绘制实例的文本。 使用 logcat 调试它,这是我的发现 您可以直接更改匿名类中的实例 除非实例名称不同,否则您不需要 this 关键字。

    谢谢。

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 2015-03-23
      • 2023-03-08
      • 2020-04-02
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      相关资源
      最近更新 更多