Java 转换列表<;整数>;串

Java 转换列表<;整数>;串,java,eclipse,string,lambda,Java,Eclipse,String,Lambda,我有一个整数序列(List),希望将其转换为字符串。我不明白为什么这个代码不起作用: sequence.stream().map(n -> n == 1 ? "+" : (n == -1 ? "-" : Integer.toString(n))).collect(Collectors.joining(",")); 如您所见,我希望将1表示为+,将-1表示为- 我收到错误消息类型不匹配:无法从流转换为编辑 在阅读了注释后,知道Java还可以: Eclipse不知道n==1?“+”:(n==

我有一个整数序列(
List
),希望将其转换为字符串。我不明白为什么这个代码不起作用:

sequence.stream().map(n -> n == 1 ? "+" : (n == -1 ? "-" : Integer.toString(n))).collect(Collectors.joining(","));
如您所见,我希望将
1
表示为
+
,将
-1
表示为
-

我收到错误消息
类型不匹配:无法从流转换为

编辑

在阅读了注释后,知道Java还可以:

Eclipse不知道
n==1?“+”:(n==-1?”-“:Integer.toString(n))).toString()
being一个字符串

sequence.stream().map(n -> (String)((n == 1 ? "+" : (n == -1 ? "-" : Integer.toString(n))))).collect(Collectors.joining(","))
很好

编辑

如果将其提取到函数中,Eclipse会知道它是一个字符串:

private static String format(Integer n) {
    return n == 1 ? "+" : (n == -1 ? "-" : Integer.toString(n));
}

对我有用。您确定错误是由该行引起的吗?您使用的是Eclipse吗?谷歌搜索错误消息表明这是Eclipse编译器的一个bug。@是的,我正在使用Eclipse。这个bug什么时候会被修复?我自己不使用Eclipse,所以我不确定,但这似乎是相关的bug。我的Eclipse(版本:Mars.2 Release(4.5.2)Build id:20160218-0600)假装是最新的,但仍然存在bug,因为修复日期在20160218之后。只要我在Eclipse中保存您的行(我必须编译它),Eclipse就会删除
(字符串)
并再次出现
类型不匹配:无法从流转换为
。这可能是因为我在保存时使用了AutoFormat。如果选择“删除不必要的强制转换”,Eclipse的某些部分会比其他部分更智能:-)