方法格式:void forEach(消费者操作)
在代码Consumer<T>
上,我没有指定T的类型(类型)。 Java如何知道List<String>
类型?
我不知道lambda表达式如何工作..
List<String> list = Arrays.asList("John","Carl","Jenny");
Stream<String> stream = list.stream();
stream.forEach(name->System.out.println(name));
答案 0 :(得分:-1)
Lambda表达式与匿名类的概念联系在一起 和功能接口看看 Oracle's Java Tutorial: Anonymous Classes
Oracle's Java 8 Api for functional interfaces package: java.util.function
以及lambda表达式Oracle's Java Tutorial: Lambda Expressions
,如果您尝试用常规的Java代码替换lambda表达式 就像
stream.forEach(new Consumer<String>() {
@Override
public void accept(String t) {
System.out.println(t);
}
});
**注意:在编译时,lambda表达式不会被上述代码替换 但它们被(invokedynamic)指令取代,因为这篇不错的文章 声明为DZone: Hacking Lambda Expressions in Java