接口java

时间:2016-04-08 07:35:44

标签: java interface instance

嘿,我想知道在制作实施者时是否可以对接口进行一些初始化。就像抽象类中的空白构造函数一样。

我试过这样的事情:

public interface State {

{
//Do something.
}

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

但它不会让你有一个实例初始化器。有没有办法做到这一点?可能有一个内部阶级?

因此,想法是在创建实现对象的新实例时自动调用一段代码。

3 个答案:

答案 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开始,您可以在界面中创建静态和默认方法,这允许您在界面中创建带有主体的方法。