接口内的嵌套类

时间:2012-02-01 15:11:50

标签: java interface nested-class

java编译器允许我在Interface中编写一个Class定义。这有什么具体用途吗?

interface ClassInterface {

  void returnSomething();
  int x = 10;

  class SomeClass {
    private int y;

    private void classDoingSomething() {         
    }
  }
}

请解释。

2 个答案:

答案 0 :(得分:4)

使用与嵌套在另一个类中的类相同:它允许将类作用于接口。你可以想象这样的事情:

public interface Switch {

    public enum Status {
        ON, OFF;
    }

    void doSwitch();
    Status getStatus();
}

它避免了定义名为SwitchStatus的顶级类(因为Status可能是一个太通用的名称)。

答案 1 :(得分:2)

您可以使用它将某种类型紧密绑定到接口。阅读This页面以获取更多信息以及在界面中定义类的示例。