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
)是的,但其思想是在创建实现对象的新实例时自动调用一段代码。