将List <integer>转换为String

时间:2016-06-04 07:51:04

标签: java eclipse string lambda

我有一个整数序列(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>

1 个答案:

答案 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));
}