当使用 List 的 forEach() 方法时,该方法需要接收一个 Consumer 对象。最传统的方法,我们可以通过匿名类实现此函数式接口。也可以使用lamda表达式替代匿名类的使用。如果需要实现的方法已经存在(比如我们只想打印 List 中的内容),则可直接使用方法引用。
下面是实战代码:
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
/**
* @author CoveyLiu, covey@liukedun.com
* @date 2019-08-13 11:54
*/
public class Generic {
// Java 匿名类、lambda表达式、方法引用 的使用
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(123);
printList(list);
List<String> list2 = new ArrayList<>();
list2.add("string");
printList2(list2);
List<Boolean> list3 = new ArrayList<>();
list3.add(true);
printList3(list3);
}
/* printList() 的作用是使用 forEach() 方法打印List内容 */
// 使用匿名类
private static void printList(List<?> list) {
list.forEach(new Consumer<Object>() {
@Override
public void accept(Object o) {
System.out.println(o);
}
});
}
// 使用lambda表达式替代匿名类的使用
private static void printList2(List<?> list) {
list.forEach(o -> System.out.println(o));
}
// 对于已有的方法,可使用方法引用,这里直接引用println() 静态方法 打印内容
private static void printList3(List<?> list) {
list.forEach(System.out::println);
}
}
输出结果
123
string
true
有帮助到你的就点赞、收藏一下吧
需要更多教程,微信扫码即可
👆👆👆
别忘了扫码领资料哦【高清Java学习路线图】
和【全套学习视频及配套资料】