我正在开发一个Java程序,我的问题是我想编写一个通用方法来调用
关于几个类的具体方法,并且该类是未知的。

例如在正常使用中,我为RootLayoutController类编写了这段代码,它的工作原理是:

RootLayoutController controller = loader.getController();
        controller.setMainApp(this)


但是问题是我必须编写很多方法来调用它们!
所以我创建了PageController接口(里面有setMainApp())并在RootLayoutController和其他类中实现了;然后将方法更改为此:

Object controller = loader.getController();
        ((PageController) controller).setMainApp(this);


但是它抛出了classcastexception,而且我对接口不了解很多,所以我无法调试它!
非常感谢

最佳答案

在Java 8下,文件PageController.java(接口):

package test;

@FunctionalInterface
public interface PageController {
    void setMainApp(PageController c);
}


文件PageControllerImpl.java(测试实现):

package test;

public class PageControllerImpl implements PageController {

    @Override
    public void setMainApp(PageController c) {
        // TODO your implemenrtation

    }

    public static void main(String[] args) {
        PageController testController = new PageControllerImpl();
        testController.setMainApp(testController);
    }

}

10-06 16:13