抽取一个共有方法,用来解决两个默认方法之间重复代码的问题,这个共有方法不应该让实现类使用,应该是私有化的。
解决方案:
从Java 9开始,接口当中允许定义私有方法。
1. 普通私有方法,解决多个默认方法之间重复代码问题
定义格式:
private 返回值类型 方法名称(参数列表) {
方法体
}
例:
1 public default void methodDefault1() {
2 System.out.println("默认方法1");
3 // methodCommon();
4 }
5
6 public default void methodDefault2() {
7 System.out.println("默认方法2");
8 // methodCommon();
9 }
10
11 private void methodCommon(){
12 System.out.println("AAA");
13 System.out.println("BBB");
14 System.out.println("CCC");
15 }
2. 静态私有方法,解决多个静态方法之间重复代码问题
格式:
private static 返回值类型 方法名称(参数列表) {
方法体
}
例:
1 public static void methodStatic1() {
2 System.out.println("静态方法1");
3 methodStaticCommon();
4 }
5
6 public static void methodStatic2() {
7 System.out.println("静态方法2");
8 methodStaticCommon();
9 }
10
11 private static void methodStaticCommon() {
12 System.out.println("AAA");
13 System.out.println("BBB");
14 System.out.println("CCC");
15 }