【问题标题】:Use of Static Interface Inside of Java Class [duplicate]Java类内部静态接口的使用[重复]
【发布时间】:2019-05-10 07:23:38
【问题描述】:
下面的类是一个java类,我见过静态接口在这个类里面我从来没有见过这个静态接口有什么用,创建这样的接口有什么好处
public class Validator {
public static interface ItemValidator {
public int withinTolerance(Number value, Number oldValue);
}
}
【问题讨论】:
标签:
java
interface
static
inner-classes
【解决方案1】:
在另一个接口或类中声明的接口称为嵌套接口。它们也被称为内部接口。由于嵌套接口不能直接访问,所以使用它们的主要目的是通过将相关接口(或相关接口和类)组合在一起来解析命名空间。这样我们就只能调用嵌套接口,方法是使用外部类或者外部接口名后跟点(.),后跟接口名。
示例:Map 接口内部的入口接口是嵌套的。因此我们通过调用 Map.Entry 来访问它。
注意:
默认情况下,嵌套接口是静态的。您不必将它们显式标记为静态,因为这将是多余的。
在类中声明的嵌套接口可以使用任何访问修饰符,但是在接口中声明的嵌套接口是隐式公共的。
示例 1:在另一个接口中声明的嵌套接口
interface MyInterfaceA{
void display();
interface MyInterfaceB{
void myMethod();
}
}
class NestedInterfaceDemo1
implements MyInterfaceA.MyInterfaceB{
public void myMethod(){
System.out.println("Nested interface method");
}
public static void main(String args[]){
MyInterfaceA.MyInterfaceB obj=
new NestedInterfaceDemo1();
obj.myMethod();
}
}