Javaでは、ときに我々は、インタフェースでのプライベートインスタンスメソッドを使用する必要がありますか?

sg7610:

Javaの9のように、インターフェースのメソッドはprivateにすることができます。プライベートメソッドは、静的またはインスタンスメソッドすることができます。プライベートメソッドは、インタフェース自体の方法でのみ使用することができますので、その使用は、インターフェイスの他のメソッドのためのヘルパーメソッドであることに限定されています。

ケイ・S・ホーストマン、コアJavaのボリュームI - 基礎編

私たちは、プライベートメソッドに共通の機能を入れて、公衆にそれがアクセスすることはできませんことを取得します。しかし、我々は、ここでプライベートメソッドの2種類を持つことができます。

  1. private
  2. private static

使用private static方法は理解しやすいですが、私たちが使うべきときprivateな方法を?私たちは、これがインターフェイスであるとして、ここでの事例を扱っていないので、なぜ作成private方法は許可されていますか?我々は必要としないprivate static方法を?

jingx:

実際にはOPの質問に答えでOK、別の試み。あなたはプライベートメソッドからインターフェイス上の別の非静的メソッドを呼び出す必要がある場合には、民間の方法は、静的にすることはできません。例えば、民間の方法は、以下の静的だった場合、コンパイル・エラーが存在することになります。

public interface InterfaceWithMethods {
    public default void doSomething() {
        doSomethingCommon();
    }

    public default void doSomethingElse() {
        doSomethingCommon();
    }

    public void actuallyDoSomething();

    private void doSomethingCommon() {
        System.out.println("Do something first.");
        actuallyDoSomething();
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=309854&siteId=1