我有一个整数序列(List<Integer>
)并希望将其转换为字符串。我不明白为什么这段代码不起作用:
sequence.stream().map(n -> n == 1 ? "+" : (n == -1 ? "-" : Integer.toString(n))).collect(Collectors.joining(","));
如您所见,我希望将1
表示为+
,将-1
表示为-
。
我收到错误消息Type mismatch: cannot convert from Stream<Object> to <unknown>
。
答案 0 :(得分:2)
修改强>
阅读评论后知道Java没问题:
Eclipse并不知道n == 1 ? "+" : (n == -1 ? "-" : Integer.toString(n))).toString()
是一个字符串。
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));
}