java接口中的实例初始化器
嘿,我想知道当实现者被创建时,是否有可能对接口进行一些初始化。就像抽象类中的空白构造函数一样 我试过这样的方法:java接口中的实例初始化器,java,interface,instance,Java,Interface,Instance,嘿,我想知道当实现者被创建时,是否有可能对接口进行一些初始化。就像抽象类中的空白构造函数一样 我试过这样的方法: public interface State { { //Do something. } public void render(); public void tick(); } 但它不允许使用实例初始值设定项。有没有办法做到这一点?可能是内部类 因此,当创建一个实现对象的新实例时,会自动调用一段代码。如果不能这样做,接口就不能定义初始值设定项 接口基本上是方法签名的列表 接口中
public interface State {
{
//Do something.
}
public void render();
public void tick();
}
但它不允许使用实例初始值设定项。有没有办法做到这一点?可能是内部类
因此,当创建一个实现对象的新实例时,会自动调用一段代码。如果不能这样做,接口就不能定义初始值设定项
接口基本上是方法签名的列表 接口中不能有静态块或实例块。但是在Java8中,您可以使用静态和默认方法
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;
}
}
接口不是这样工作的,它是方法签名的列表,这些方法必须在实现接口的类中实现。要做到这一点,您将需要一个类而不是一个接口。
有一种可能的解决方案,从Java 8可以在接口中创建静态和默认方法,这允许您在接口中创建带有主体的方法。第二条语句不再正确,因为Java 8向接口中的方法添加了默认实现,所以您可以声明字段(它们会自动变为
静态final
)是的,但其思想是在创建实现对象的新实例时自动调用一段代码。