Regionプログラムでハマったエラーとその解決方法についての備忘録メモ2018-09-30【Java】Mapへの初期代入についてJavaJavaでMapを作成して最初に何か値を代入したい場合、通常は以下のようにすると思います。"bar");ただ、他の言語を触っている人だと、Mapの作成と同時に値を設定して置きたいと感じるのではないでしょうか。下のコードのような形です。'bar');これをJavaでやろうとすると以下のようにすることで実現できます。"bar");}};ただしJavaでこの方法を使う場合、一点だけ注意が必要です。それは、mapのインスタンスの実クラスがHashMapではなくHashMapを継承した匿名クラスになってしまうということ。いうことかを説明するために、上記のコードを匿名クラスを使わない書き方に変更すると次のようになります。ExtendedHashMap();ではこれで何か不都合が起こるかという話なのですが、map.getClass()などでクラスの情報を取るような場合に思った通りのクラス名が取得できないというデメリットがあります。実際に「Java8でのHashMapの生成と初期代入例」のプログラム実行後に、map.getClass().getName()を取得してみると「プログラム名$1」という結果が返ってくるはずです。自分の組んだプログラム内では問題がなくても、フレームワークや外部モジュールの作りによっては、もしかしたらここが落とし穴になるかもしれませんね。