gpt4 book ai didi

java - Lambda 表达式不工作,被终止

转载 作者:搜寻专家 更新时间:2023-10-31 19:51:48 26 4
gpt4 key购买 nike

用 lambda 表达式编写 java8 程序,它没有被执行而是在 lambda 表达式处终止,没有异常(exception)

    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();
}

}

}

预计会打印列表中的字符串

最佳答案

这是因为您没有调用 BiConsumeraccept 方法。调用如下:

  bc.accept(list1, list2);

此外,请注意,不必调用 stream 来调用 forEach,而是直接在列表上调用 forEach:

 lista.forEach(System.out::print);

另一件事是你的 BiConsumer 没有使用第二个列表,这可能是因为你还没有完成整个逻辑的实现,在这种情况下这是可以理解的。

完整代码:

BiConsumer<List<String>, List<String>> bc = (lista, listb) -> {
lista.forEach(System.out::print);
// listb.forEach(System.out::print);
};
bc.accept(list1, list2);

关于java - Lambda 表达式不工作,被终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54005827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com