Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のコレクションファクトリメソッドの条件は何ですか?


Java 9では、ファクトリメソッド コレクションに追加されました API 変更不可能を作成できます リスト、設定 およびマップ それを使用してコードの行数を減らすためのコレクションオブジェクト。 List.of()、Set.of()、Map.of() 、および Map.ofEntries() 静的ファクトリメソッドです 不変を作成する便利な方法を提供します コレクション

以下は条件です コレクションファクトリメソッドの場合:

  • 構造的に不変です。
  • null要素またはnullキーを許可しません。
  • すべての要素がシリアル化可能であれば、それらはシリアル化可能です。
  • 作成時に重複する要素/キーを拒否します。
  • 設定された要素の反復順序は指定されておらず、変更される可能性があります。
  • それらは価値に基づいています。工場は自由に新しいインスタンスを作成したり、既存のインスタンスを再利用したりできます。したがって、これらのインスタンスでのIDに依存する操作、IDハッシュコード、および同期は信頼性が低く、回避できます。

構文

List.of(elements...)
Set.of(elements...)
Map.of(k1, v1, k2, v2)

import java.util.Set;

public class CollectionsTest {
   public static void main(String args[]) {
      System.out.println("Java 9 Introduced a static factory method: of()");
      Set<String> immutableCountrySet = Set.of("India", "England", "South Africa", "Australia");
      System.out.println(immutableCountrySet);
      try {
         immutableCountrySet.add("Newzealand");
      } catch(Exception e) {
         System.out.println("Caught Exception, Adding Entry to Immutable Collection!");
      }
   }
}

出力

Java 9 Introduced a static factory method: of()
[South Africa, India, Australia, England]
Caught Exception, Adding Entry to Immutable Collection!

  1. Java 9での@Deprecatedアノテーションの改善点は何ですか?

    @Deprecatedで注釈を付けることができる要素 この特定の要素が以下の理由で使用されなくなったことを意味します 使用するのは危険であり、エラーが発生する可能性があります。 将来のバージョンでは互換性がなくなる可能性があります。 将来のバージョンで削除される可能性があります。 より優れた、より効率的なソリューションがそれに取って代わりました。 Java 9には、次の2つの新しい要素が追加されています。以降 およびforRemoval 属性。 1)以降: この要素は、注釈付きAPI要素の非推奨バージョンを指定します。 2)forRemoval: 注釈付きのAPI要素を表す

  2. JavaのJTextPaneとJEditorPaneの違いは何ですか?

    JTextPane JEditorPaneの拡張です フォント、テキストスタイル、色などのワードプロセッシング機能を提供します など。高負荷のテキスト処理を行う必要がある場合は、このクラスを使用できますが、 JEditorPane HTMLの表示/編集をサポートします およびRTF コンテンツ 独自のEditorKitを作成することで拡張できます 。 JTextPane JTextPane JEditorPaneのサブクラスです 。 JTextPane 埋め込みのスタイル付きドキュメントに使用されます 画像 およびコンポーネント。 JTextPane は、グラ