接口 java 中的实例初始值设定项

Instance initializer in interface java

嘿,我想知道是否可以在创建实现器时对接口进行一些初始化。就像抽象中的空白构造函数 class.

我试过这样的事情:

public interface State {

{
//Do something.
}

public void render();
public void tick();
}

但它不允许您拥有实例初始化器。有什么办法吗?可能有一个内部 class?

所以想法是当创建一个实现对象的新实例时自动调用一段代码。

你不能这样做,接口不能定义初始化程序。

接口基本上是方法签名的列表。

界面中不能有静态块或实例块。但是从 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;
  }
}

接口不是那样工作的,它是方法签名的列表,必须在实现接口的 class 中实现的方法。为此,您需要 class 而不是接口。 对于这样的事情有一个可能的解决方案,从 Java 8 你可以在你的接口中创建静态和默认方法,这允许你在接口中创建带有主体的方法。