【问题标题】:Calling another method within method with the same name in Java在Java中同名的方法中调用另一个方法
【发布时间】:2016-04-14 11:59:25
【问题描述】:

我正在尝试调用我在发现用于其他东西的接口需要我调用其预定义方法之前创建的方法,该方法与我要在内部调用的方法名称相同。 示例:

public void onClick(View v) {
    //doSomething
}
public void method() {
    Button btn = new Button(this);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //here I want to call the top onClick method
        }
    });
}

你们能帮助我如何使用 top 方法,而不是递归 inside 吗? 提前谢谢。 杰夫

【问题讨论】:

    标签: java android methods


    【解决方案1】:

    语法是:

    <enclosing-class>.this.onClick();
    

    所以如果你说MainActivity,那么:

    MainActivity.this.onClick();
    

    【讨论】:

    • 是的!万分感谢。
    • 乐于助人!请不要忘记接受答案。
    【解决方案2】:

    使用的语法是OuterClass.this.methodName();

    例如如果外部类是A,你需要调用A.this.onClick();

    interface IOnClick {
        public void onClick();
    }
    
    class A {
        public void onClick(){
        }
    
        public void test(){
            IOnClick ic = new IOnClick(){
                public void onClick(){
                    A.this.onClick();
                }
            };
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      相关资源
      最近更新 更多