我正在开发一个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);
}
}