1. 概述

从 Java 9 开始,可以将私有方法添加到 Java 中的接口中 。在这个简短的教程中,我们将讨论如何定义这些方法及其好处。

2. 在接口中定义私有方法

私有方法可以 静态 或非 静态 实现。 这意味着在接口中我们能够创建私有方法来封装来自 默认静态 公共方法签名的代码。

首先,让我们看看如何使用默认接口方法中的私有方法:

public interface Foo {

    default void bar() {
        System.out.print("Hello");
        baz();
    }

    private void baz() {
        System.out.println(" world!");
    }
}

bar() 能够通过从其默认方法调用私有方法 baz() 来使用它。

接下来,让我们向 Foo 接口添加一个静态定义的私有方法:

public interface Foo {

    static void buzz() {
        System.out.print("Hello");
        staticBaz();
    }

    private static void staticBaz() {
        System.out.println(" static world!");
    }
}

在接口内,其他静态定义的方法可以使用这些私有静态方法。

最后,让我们从具体类中调用定义的默认方法和静态方法:

public class CustomFoo implements Foo {

    public static void main(String... args) {
        Foo customFoo = new CustomFoo();
        customFoo.bar();
        Foo.buzz();
    }
}

输出是字符串“Hello world!”从对 bar() 方法的调用和“Hello static world!”从调用 嗡嗡声() 方法。

3. 接口中私有方法的好处

既然我们已经定义了私有方法,那么我们就来谈谈它们的好处。

上一节中提到,接口能够使用私有方法来隐藏实现该接口的类的实现细节。因此,将这些包含在接口中的主要好处之一就是封装。

另一个好处是(与一般的私有方法一样),为具有类似功能的方法的接口添加了更少的重复和更多可重用代码。

4。结论

在本教程中,我们介绍了如何在接口中定义私有方法以及如何在静态和非静态上下文中使用它们。我们在本文中使用的代码可以在 GitHub 上找到。