作者JustinHere (良葛格)
看板java
标题Re: [问题] Class中的大括号
时间Thu Jun 26 13:54:36 2014
※ 引述《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
}}
--
良葛格学习笔记
http://openhome.cc
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.9.217.215
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1403762081.A.6F0.html
※ 编辑: JustinHere (101.9.217.215), 06/26/2014 13:56:55
※ 编辑: JustinHere (101.9.217.215), 06/26/2014 13:58:08
1F:推 popcorny:在anonymous class中用就合理了!! 06/26 13:58
2F:推 Deltaguita:学到了 谢谢! 06/26 14:41
3F:推 NullLife:(笔记) 06/26 23:58
4F:→ Killercat:这个作delegation/callback很常见 不过我个人实在对 06/27 17:03
5F:→ Killercat:这种写法非常感冒(汗)虽然这是某些framework, 如 06/27 17:03
6F:→ Killercat:android的标准作法就是 06/27 17:03
7F:→ Killercat:下面那个作法是Builder pattern, 其实通常会接个.create 06/27 17:04
8F:→ Killercat:类型的method作为「真正产生动作」的结尾 06/27 17:04
9F:→ Killercat:Builder设计也是一个不错的梗 下次跟大家分享一下 06/27 17:05