C#3.0のコレクションイニシャライザを見て、Javaのインスタンスイニシャライザ*1に似ているな、と思った。
まず、C#3.0のコレクションイニシャライザはこんな感じ。
var list = new List<string>
{
"hoge",
"piyo"
};
で、Javaのインスタンスイニシャライザはこう。
ArrayList<String> list = new ArrayList<String>() {{
add("hoge");
add("piyo");
}};
やっぱり専用の構文があった方がわかりやすいな。