Java 9のインターフェースでのプライベートメソッドのルールは何ですか?
Java9にプライベートの新機能が追加されました 方法 インターフェースへ 。プライベートメソッドは、プライベートを使用して定義できます 修飾子。両方のプライベートを追加できます およびプライベート 静的 方法 Java 9のインターフェースで 以降。
インターフェースのプライベートメソッドのルール:
- プライベートメソッドはインターフェースに本体があります。つまり、インターフェースで通常行われるように、通常の抽象メソッドとして宣言することはできません。本文のないプライベートメソッドを宣言しようとすると、「このメソッドにはセミコロンではなく本文が必要です」というエラーがスローされる可能性があります。 "。
- プライベートの両方を使用することはできません および要約 修飾子をインターフェースにまとめます。
- インターフェースの静的メソッドからプライベートメソッドにアクセスする場合は、そのメソッドをプライベート静的メソッドとして宣言できます。 非静的への静的参照を作成できないため メソッド。
- プライベート静的メソッド 非静的から使用 コンテキストとは、デフォルトのメソッドから呼び出すことができることを意味します インターフェースで。
interface <interface-name> { private methodName(parameters) { // some statements } }
例
interface TestInterface { default void methodOne() { System.out.println("This is a Default method One..."); printValues(); // calling a private method } default void methodTwo() { System.out.println("This is a Default method Two..."); printValues(); // calling private method... } private void printValues() { // private method in an interface System.out.println("methodOne() called"); System.out.println("methodTwo() called"); } } public class PrivateMethodInterfaceTest implements TestInterface { public static void main(String[] args) { TestInterface instance = new PrivateMethodInterfaceTest(); instance.methodOne(); instance.methodTwo(); } }
出力
This is a Default method One... methodOne() called methodTwo() called This is a Default method Two... methodOne() called methodTwo() called
-
Java 9のサブスクリプションインターフェイスのルールは何ですか?
サブスクリプション データを仲介する目的で、1人のパブリッシャーと1人のサブスクライバーが共有できます 交換 。それがsubscribe()の理由です メソッドは作成されたサブスクリプションを返しませんが、代わりに voidを返します 。サブスクリプションは、 onSubscribe()を介してのみサブスクライバーに渡されます メソッドコールバック。サブスクリプションインターフェースには、 request()の2つのメソッドが含まれています。 およびcancel() 。 構文 public interface Subscription { public void re
-
Java 9での@Deprecatedアノテーションの改善点は何ですか?
@Deprecatedで注釈を付けることができる要素 この特定の要素が以下の理由で使用されなくなったことを意味します 使用するのは危険であり、エラーが発生する可能性があります。 将来のバージョンでは互換性がなくなる可能性があります。 将来のバージョンで削除される可能性があります。 より優れた、より効率的なソリューションがそれに取って代わりました。 Java 9には、次の2つの新しい要素が追加されています。以降 およびforRemoval 属性。 1)以降: この要素は、注釈付きAPI要素の非推奨バージョンを指定します。 2)forRemoval: 注釈付きのAPI要素を表す