ホームページ >Java >&#&チュートリアル >Java で静的マップを初期化する方法: 静的ブロックと匿名サブクラス?

Java で静的マップを初期化する方法: 静的ブロックと匿名サブクラス?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-03 20:21:16637ブラウズ

How to Initialize Static Maps in Java: Static Block vs. Anonymous Subclass?

Java での静的マップの初期化

Java では、次の 2 つの主要な方法を使用して静的マップを初期化できます。

1. Static Initialiser

このメソッドでは、クラス宣言内で静的ブロックを使用してマップを初期化します。この例は、提供されたコード サンプルに示されています。

private static final Map<Integer, String> myMap = new HashMap<>();
static {
    myMap.put(1, "one");
    myMap.put(2, "two");
}

利点:

  • シンプルで簡単
  • 初期化を保証クラスロード

欠点:

  • 複雑な初期化ロジックには適さない可能性があります

2. Instance Initialiser (Anonymous Subclass)

このメソッドは、匿名サブクラスを使用してマップを初期化します。これはインスタンス初期化器として記述されていますが、静的初期化と同じ目的を果たします:

private static final Map<Integer, String> myMap2 = new HashMap<>(){
    {
        put(1, "one");
        put(2, "two");
    }
};

利点:

  • より複雑な初期化ロジックが可能
  • 不変を作成しますmap

欠点:

  • 匿名サブクラスの作成が必要
  • すべてのシナリオでサポートされない可能性があります (例:クラスは最終)

代替案:

  • 不変静的マップ: 静的ブロックを使用してマップを初期化し、コレクションを呼び出すことによって.unmodifiableMap(map)、不変の静的マップを作成できます地図。

以上がJava で静的マップを初期化する方法: 静的ブロックと匿名サブクラス?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。