JavaのMapを簡単に使えるようにした
追記: これ、ダメだ。。。Foo.map(...).put(...).put(...) だとエラーになる... orz
Map map = new HashMap(); map.put("java", "('A`)"); map.put("ruby", "(´∀`)"); map.put("python", "(`・ω・´)");
mapを扱う機会が多かったので、簡単に作れる方法をググってみたら、Javaにおける疑似Map生成リテラル({ key => value }ばりに簡単にMapを生成する方法) - 矢野勉のはてな日記 とかが見つかった。
引用すると
// Example usage : import static Literals.map; Map<String,Integer> example = map("hello",1).map("world",2).map("!",3);
みたいな書き方が出来るらしい。これは良さそう!
だが・・・
諸事情により、クラスを簡単に作成できない環境だったので、
匿名クラスを使ってやってみた。
class Foo { public static Map map(Object key, Object value) { return new HashMap() { public Map put(Object key, Object value) { super.put(key, value); return this; } }.put(key, value); } }
これならメソッドを1つ作るだけ*1で
Map example = (Map)Foo.map("foo", "var").put("hoo", "piyo");
とかの使い方が出来る!
ここまで書いてはみたけど・・・
普通の開発環境ならリンク先のMapBuilderとかを作った方が良い。
*1:Fooクラスは元々あった適当なクラス