例えば以下のようなクラスがあるとする。
メンバ変数fruitsはコンストラクタの中で初期化される。
package com.kenjih.test; import java.util.HashMap; import java.util.Map; public class Clazz { Map<String, String> fruits = new HashMap<String, String>(); public Clazz() { fruits.put("RED", "APPLE"); fruits.put("YELLOW", "BANANA"); fruits.put("GREEN", "KIWI"); } public void run() { for (String key : fruits.keySet()) { System.out.println(key + "->" + fruits.get(key)); } } public static void main(String[] args) { new Clazz().run(); } }
これをイニシャライザブロックと無名クラスを使うと以下のように書ける。なんかJavaできそうな雰囲気が漂っていてかっこいい。今度機会があれば真似しようっと。
package com.kenjih.test; import java.util.HashMap; import java.util.Map; public class Clazz { Map<String, String> fruits = new HashMap<String, String>() { { put("RED", "APPLE"); put("YELLOW", "BANANA"); put("GREEN", "KIWI"); } }; public void run() { for (String key : fruits.keySet()) { System.out.println(key + "->" + fruits.get(key)); } } public static void main(String[] args) { new Clazz().run(); } }
0 件のコメント:
コメントを投稿