Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8 类型流中的方法收集(收集器<;?super Dish,A,R>;);盘子>;不适用于参数(收集器<;CharSequence,捕获#3-of?,字符串>;)_Java 8 - Fatal编程技术网

Java 8 类型流中的方法收集(收集器<;?super Dish,A,R>;);盘子>;不适用于参数(收集器<;CharSequence,捕获#3-of?,字符串>;)

Java 8 类型流中的方法收集(收集器<;?super Dish,A,R>;);盘子>;不适用于参数(收集器<;CharSequence,捕获#3-of?,字符串>;),java-8,Java 8,对于下面开发的Java8代码,我得到以下错误。在本例中,尝试将菜名的所有名称合并到单个变量中。通过下面的代码,我得到了这个方法collect(Collector您只能加入CharSequences,因为Collector::joining命令,另一方面,您的流是流(在第3行),它将与定义不匹配,也不会编译-这就是您得到的。您得到了Lombok注释@Data,它会自动创建一个toString()方法,因此您可能希望第3行可以工作。toString()方法只有在您将其添加到字符串时才会自动调用(即文

对于下面开发的Java8代码,我得到以下错误。在本例中,尝试将菜名的所有名称合并到单个变量中。通过下面的代码,我得到了这个方法collect(Collector您只能加入
CharSequence
s,因为
Collector::joining
命令,另一方面,您的流是
(在第3行),它将与定义不匹配,也不会编译-这就是您得到的。

您得到了Lombok注释
@Data
,它会自动创建一个
toString()
方法,因此您可能希望第3行可以工作。
toString()
方法只有在您将其添加到字符串时才会自动调用(即文字字符串或另一个声明为字符串的变量)。对于其他用途,需要显式调用
toString()
。因此,第3行应为:

String shortMenu1 = Dish.menu.stream().map(Dish::toString).collect(joining()); //line-3

我们如何解决这个问题?我需要什么样的准确更改?@Sayali但是你已经通过
Dish.menu.stream().map(Dish::getName.collect)(joining());
如果这不是你需要的,可以解释一下吗?
String shortMenu = Dish.menu.stream().map(Dish::getName).collect(joining());
System.out.println(shortMenu);

String shortMenu1 = Dish.menu.stream().collect(joining()); //line-3
String shortMenu1 = Dish.menu.stream().map(Dish::toString).collect(joining()); //line-3