java - 使用类的对象调用另一个类的方法

标签 java methods interface this implementation

A实现了需要方法doAction()的接口(interface)I。如果我调用 B 类的 A 类的方法,并传递“this”(class A) 到该方法中,如何从类 B 中的方法调用类 A 中的方法?例如:

class A implements I {
    public void start() {
        B.myMethod(this);
    }

    @Override
    public void doAction() {
        // Do stuff...
    }
}

Class B {
    public void myMehtod(Class theClass) { //How would I accept 'this', and...
        theClass.doAction(); //How would I call the method?
    }
}

我这样做是为了自定义库,而不知道扩展 I 的类的确切名称。

最佳答案

这是一个关于接口(interface)如何工作的非常基本的问题。我建议尝试找到有关它们的教程。

无论如何,您所要做的就是声明一个以接口(interface)为类型的参数。您可以对接口(interface)类型(或实现该接口(interface)的任何子接口(interface)或类)的变量调用接口(interface)方法。

Class B {
    public void myMethod(I theClass) {
        theClass.doAction();
    }
}

关于java - 使用类的对象调用另一个类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248238/

相关文章:

java - 不传播点击

python - 如何使用类显示与矩形位置相关的字体?

go - golang规范中有关方法值的部分中的 'non-interface method'是什么意思?

python - python中递归方法的AttributeError

.net - 如何解决 Generic.IList<T>.this[] 和 IList.this[] 之间的调用歧义?

reflection - 验证一个接口(interface)是否满足另一个接口(interface)

inheritance - 是否可以向 Kotlin 中的现有类添加接口(interface)?

java - 放置在 FrameLayout 内的 Fragment View 会抛出 NullPointerException

java - 在 Java 中检索 HashMap 值

java - SLF4J-Log4j 记录器不记录