use*_*524 5 java lambda java-8 functional-interface
使用lambda表达式编写了java8程序,它没有被执行而是在lambda表达式中被终止,没有例外
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiConsumer;
public class BiConsumerTest {
public static void main(String[] args) {
try{
List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
list1.add("V");
List<String> list2 = new ArrayList<String>();
list2.add("J");
list2.add("G");
list2.add("P");
BiConsumer<List<String> , List<String>> bc = (lista, listb) ->{
lista.stream().forEach( System.out::print);
};
}catch(Exception ex){
ex.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
预计会在列表中打印字符串
这是因为您没有调用 的BiConsumer方法accept。调用如下:
bc.accept(list1, list2);
Run Code Online (Sandbox Code Playgroud)
此外,请注意,不必stream只是为了调用而调用,而是直接在列表上forEach调用:forEach
lista.forEach(System.out::print);
Run Code Online (Sandbox Code Playgroud)
另一件事是您BiConsumer没有使用第二个列表,这可能是因为您还没有完成整个逻辑的实现,在这种情况下这是可以理解的。
完整代码:
BiConsumer<List<String>, List<String>> bc = (lista, listb) -> {
lista.forEach(System.out::print);
// listb.forEach(System.out::print);
};
bc.accept(list1, list2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |