1. 传统 for 循环写法
for (OutreachMemberWithGisDto member : result) {
member.maskAll();
}
解释:
-
result 是一个 List,存储了很多 OutreachMemberWithGisDto。
-
for (Type var : collection) 会把集合里的每个元素依次赋值给 var。
-
然后你就可以在循环体里操作 var,比如调用 maskAll() 方法。
-
特点:容易理解、经典写法,但有时候显得略长,尤其是集合操作很复杂时。
2. 函数式写法(Lambda + forEach)
可以用 List 的 forEach 方法:
result.forEach(member -> member.maskAll());
解释:
-
forEach 是 Iterable 接口提供的方法,List 可以直接使用。
-
member -> member.maskAll() 是一个 Lambda 表达式:
-
左边的 member 是集合里的元素。
-
右边的 member.maskAll() 是对这个元素要执行的操作。
-
作用:效果和传统 for 循环完全一样,但写法更紧凑。
3. 方法引用写法(更简洁)
如果 Lambda 只是调用已有方法,可以用方法引用:
-
result.forEach(OutreachMemberWithGisDto::maskAll);
-
OutreachMemberWithGisDto::maskAll 相当于告诉 forEach:
-
“对每个集合元素调用它的 maskAll() 方法”。
-
效果和 member -> member.maskAll() 一样,但更短,更函数式。
总结
写法类型 | 示例 | 说明 |
---|---|---|
传统 for | for (Type t : list) { t.doSomething(); } | 经典易懂,灵活 |
Lambda forEach | list.forEach(t -> t.doSomething()); | 函数式,简洁 |
方法引用 | list.forEach(Type::doSomething); | 更短,更优雅 |