//java 中 对于有返回值的语句是必须要赋值给一个对象的。
//也就是说
//这个语句是编译不过的
1==1;
// 这样通过短路的方式去简化 if 语句是不行的
1==2&&method();
//所以对于没有返回值的 if 语句只能老实的写成
if(1==2)
method();
//但是这样的话如果放到 lamda 表达式中就会让语句变得很复杂
//理想状态 1
list.foreach(val->1==2&&method(val));
//理想状态 2 这里的 void 表示没有任何操作,java 也不支持这种空操作
list.foreach(val->1==2?method(val));
list.foreach(val->1==2?method(val):void);
//现实
list.foreach(val->{
if(1==2)
method(val);
});
所以有什么更好的办法吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.