嘿,我想知道在制作实施者时是否可以对接口进行一些初始化。就像抽象类中的空白构造函数一样。
我试过这样的事情:
public interface State {
{
//Do something.
}
public void render();
public void tick();
}
但它不会让你有一个实例初始化器。有没有办法做到这一点?可能有一个内部阶级?
因此,想法是在创建实现对象的新实例时自动调用一段代码。
答案 0 :(得分:4)
您不能在界面中拥有静态或实例块。但是从java 8开始,你可以使用静态和默认方法。
public interface MyData {
default void print(String str) {
if (!isNull(str))
System.out.println("MyData Print::" + str);
}
static boolean isNull(String str) {
System.out.println("Interface Null Check");
return str == null ? true : "".equals(str) ? true : false;
}
}
答案 1 :(得分:3)
您无法执行此操作,界面无法定义初始值设定项。
接口基本上是方法签名列表。
答案 2 :(得分:0)
接口不能以这种方式工作,它是方法签名列表,必须在实现接口的类中实现的方法。要做到这一点,你需要一个类而不是一个接口。 对于类似的东西,有一种可能的解决方案,从Java 8开始,您可以在界面中创建静态和默认方法,这允许您在界面中创建带有主体的方法。