我正在尝试使用现有程序包在其上创建自己的应用程序。但是我不知道如何调用接口参数化方法。
在包装上有一个构造函数为
的类public class App{
protected App(Logic logic) {
this(logic.configuration().welcomeScreen, logic.configuration().appName, Optional.of(logic));
}
}
界面是这样的:
public interface Logic extends X, Y {
default Configuration configuration() {
return new AppConfiguration(1000, "Hello world", true);
}
default void initialize() {
System.out.println("Starting the application.");
}
}
配置如下:
public final class Configuration {
public final int tick;
public final String appName;
public final boolean welcomeScreen;
public Configuration(int tick, String appName, boolean welcomeScreen) {
this.tick = tick;
this.appName = appName;
this.welcomeScreen = welcomeScreen;
}
}
如何使用非默认配置(1000,“ Hello world”,是)来调用应用程序?
问题与此类似:interface as a method parameter in Java,但我无法把握以接口作为参数的想法。
答案 0 :(得分:1)
您提供了一个实现接口并覆盖这些方法的类;就如此容易。 default
方法是可重写的,并且将这个interface
作为参数的方法可以将新类作为参数(因为它实现了接口);因此将调用该类中的方法。