【问题标题】:Why can't I reach methods of inner class in java?为什么我无法在 java 中访问内部类的方法?
【发布时间】:2012-04-03 06:51:47
【问题描述】:

我有一个类似这样的结构:

 class OuterClass{
        AnimatorListener sth;
        public OuterClass(){
             sth = new InnerClass();
        }
        public class InnerClass implements AnimatorListener{
             public InnerClass(){}
             public void doSomething(){}
             //assuming animator listener methods implemented
        }
        public void tryingToDoSomething(){
             sth.doSomething();   //I cannot use this, simply it is not seen by eclipse.
        }
    }

为什么我在tryingToDoSomething()时不能调用sth对象的doSomething()方法?

【问题讨论】:

  • 注意 OuterClass 的构造函数中的括号 ()
  • 那么当你执行这个更正时,报告的错误信息是什么?

标签: java android eclipse inner-classes


【解决方案1】:

您的对象sth 属于AnimatorListener 类,但它应该属于InnerClass。希望这会有所帮助,祝您编码愉快。

【讨论】:

    【解决方案2】:

    改变你的构造器语法。错了

    public OuterClass{
             sth = new InnerClass();
        }
    

    改成

    public OuterClass(){
             sth = new InnerClass();
        }
    

    【讨论】:

    • 是的,你是对的,我的错,就像你在我的代码中所说的那样。
    • 你的答案只是一个更正,你应该使用“编辑”按钮来做。它仍然不能解决我的问题。
    • 那么肯定有问题,因为我至少可以在确认的情况下编辑问题。
    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    相关资源
    最近更新 更多