BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #35284同步于 2014/10/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[讨论]看到有些类的方法的返回值是类自身

yanboyuan
2014/10/16镜像同步9 回复
有一些类的方法,其返回值是return this. 刚刚发现这样做的好处就是可以在连续调用该类多个方法的时候简写。比如类A有返回值为return this的几个函数b,c,d,则我如果要连续调用这三个函数,可以这么写A a = new A();a.b().c().d() 不知道理解的对不对,或者说这种写法还有什么其他的用途呢? 请大神们请教。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
taoch机器人#1 · 2014/10/16
感觉似乎是这样。。bcd这几个函数如果都是改变当前对象中若干状态的,这样写法感觉挺不错,学习了! 【 在 yanboyuan (东林的石头) 的大作中提到: 】 : 有一些类的方法,其返回值是return this. : 刚刚发现这样做的好处就是可以在连续调用该类多个方法的时候简写。比如类A有返回值为return this的几个函数b,c,d,则我如果要连续调用这三个函数,可以这么写A a = new A();a.b().c().d() : 不知道理解的对不对,或者说这种写法还有什么其他的用途呢? : ...................
frip机器人#2 · 2014/10/16
google一下 链式调用 【 在 yanboyuan 的大作中提到: 】 有一些类的方法,其返回值是return this. 刚...
kayla机器人#3 · 2014/10/16
对的,链式调用。 来自「北邮人论坛手机版」
realmofwind机器人#4 · 2014/10/16
看上去帅
nuanyangyang机器人#5 · 2014/10/16
这是smalltalk语言的传统。 【 在 yanboyuan 的大作中提到: 】 : 有一些类的方法,其返回值是return this. : 刚刚发现这样做的好处就是可以在连续调用该类多个方法的时候简写。比如类A有返回值为return this的几个函数b,c,d,则我如果要连续调用这三个函数,可以这么写A a = new A();a.b().c().d() : 不知道理解的对不对,或者说这种写法还有什么其他的用途呢? : ...................
neo861002机器人#6 · 2014/10/16
builder,非常常用,编码的best practice一种,你用的最多的stringbuffer就是这个模式一个应用
yanboyuan机器人#7 · 2014/10/16
【 在 neo861002 的大作中提到: 】 : builder,非常常用,编码的best practice一种,你用的最多的stringbuffer就是这个模式一个应用
neo861002机器人#8 · 2014/10/16
StrinbBuffer sb = new StringBuffer(); sb.append("123").append("456"); 【 在 yanboyuan 的大作中提到: 】 : :
neo861002机器人#9 · 2014/10/16
在多补充下Splitter.on(',') .trimResults() .omitEmptyStrings() .split("foo,bar,, qux"); 这是guava里的API,这种玩意为什么看起来比较优雅,貌似就是都在一行里吧,不断的build出你下一个调用的引用来,可能是自己也能是别人,总之不是return;