JAVA 来看看

luffyday 2007-12-06 04:48:17
StringBuffer str = new StringBuffer();
str.append("")
.append("")
.append("")
.append("");


这种写法是正确的, 但是我试了
List<String> lis = new ArrayList<String>();
就不好使~
请问还有什么可以那样写,有什么规律?


还有一个问题:
List<String> lis = new ArrayList<String>(){

};



这种写法也是对了,而且{ } 里面还可以写东西, 请问 { }里面写的算什么?
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luffyday 2007-12-06
  • 打赏
  • 举报
回复
加匿名监听的时候确实是这样写的~ 没想到这个居然也如此~ 仅此而已?
  • 打赏
  • 举报
回复
至于第一个问题:主要是由于StringBuffer的append方法的返回值是一个StringBuffer,而这个StringBuffer又可以使用append方法...所以就可以采用链式写法。

这样的写法在Java中有很多,关键是方法返回值是当前的类,就可以这样写的。而List中的add的返回值是void,而
void是没有add方法的,所以不能这样写。
zhangxiongyi_87 2007-12-06
  • 打赏
  • 举报
回复
关注
  • 打赏
  • 举报
回复
这个是匿名类,一般来说左右两边都是接口,在右边的块内实现或者重写方法,比如:
List<String> list = new List<String>() {
// 实现List接口中所有的方法。
}


这样用到最多的用是:GUI事件。这样写的好处是:可以省掉一个java文件,
缺点,不利于重用,这样写的话一般仅是一次性使用的。
luffyday 2007-12-06
  • 打赏
  • 举报
回复
to: for_cyan

StringBuffer 的.append("") 和 List的.add("");

下面那个大括号里还可以写方法。

以前就看过有这么写的, 但是没有自己研究,

今天想研究研究!
for_cyan 2007-12-06
  • 打赏
  • 举报
回复
错了,不是不能放,是一个初始化的语句,放些int i = 0; String s = "";这样
霜之哀伤 2007-12-06
  • 打赏
  • 举报
回复
楼主子想啥子??
for_cyan 2007-12-06
  • 打赏
  • 举报
回复
不明白StringBuffer和ArrayList 有什么可比性呢,一个是可变字符串类,一个是collection
List<String> lis = new ArrayList<String>(){
};
什么也不能放

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧