※ 引述《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
}}