从Java 9开始,我们可以在接口中添加私有方法和私有静态方法。在接口中使用私有方法的优点是减少默认方法和静态方法之间的代码重复。例如,如果需要两个或更多默认方法来共享一些代码,则可以为同一方法创建一个私有方法,并从每个默认方法中调用它们。
在Java 9中,接口中定义了以下变量/方法。不变
抽象方法
默认方式
静态方法
私人方法
私有静态方法
示例import java.util.*;
import java.util.stream.*;
interface InterfaceTest {
static void printEvenNumbers() {
getDataStream().filter(i -> i%2==0).forEach(System.out::println);
}
static void printLOddNumbers() {
getDataStream().filter(i -> i%2!=0).forEach(System.out::println);
}
private static Stream getDataStream() { // private static method List list = Arrays.asList(10, 13, 5, 15, 12, 20, 11, 25, 16);
return list.stream();
}
}
public class InterfacePrivateMethodTest implements InterfaceTest {
public static void main(String args[]) {
System.out.println("The even numbers: ");
InterfaceTest.printEvenNumbers();
System.out.println("The odd numbers: ");
InterfaceTest.printLOddNumbers();
}
}
输出结果The even numbers:
10
12
20
16
The odd numbers:
13
5
15
11
25