Re: [问题] Class中的大括号

楼主: JustinHere (良葛格)   2014-06-26 13:54:36
※ 引述《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
}}
作者: popcorny (毕业了..@@")   2014-06-26 13:58:00
在anonymous class中用就合理了!!
作者: Deltaguita (伯利兹)   2014-06-26 14:41:00
学到了 谢谢!
作者: NullLife (废材大叔有点累)   2014-06-26 23:58:00
(笔记)
作者: Killercat (杀人猫™)   2014-06-27 17:03:00
这个作delegation/callback很常见 不过我个人实在对这种写法非常感冒(汗)虽然这是某些framework, 如android的标准作法就是下面那个作法是Builder pattern, 其实通常会接个.create类型的method作为“真正产生动作”的结尾Builder设计也是一个不错的梗 下次跟大家分享一下

Links booklink

Contact Us: admin [ a t ] ucptt.com