※ 引述《TonyQ (自立而後立人)》之銘言:
: 一般來說你應該把初始化一個變數成員的行為放在 constructor,
: 但還是有其他兩個方法可以應用,其中一個就是你提到的這個初始化 block。
: 它會把這個 {} 裡面的程式碼放進每個建構子裡面,
: 這樣就可以用來在多個建構子裡面共用程式碼。
: (但我個人是不會建議這麼做就是了。)
有時會在建立匿名類別時使用,作一些初始動作,例如…
Some some = new Some() {
{
setXXX(...);
setOOO(...);
initWhat();
doWho();
}
@Override
public void doOrz() {
....
}
};
之前看過,有個程式庫試著用 .java 作 Configuration 檔案,有個這種作法:
// 隨便亂打的
public class YourConfig extends Configuration {{
route("/some", to("/other"));
default("/orz");
config("what you want", with(something()));
...
you().may()
.want().to().config()
.with().fluent().api(); // XDXDXD
}}