为什么在使用map获取Object时获取每个字符串元素的长度

时间:2017-11-13 03:20:07

标签: java java-stream

我正在学习Java 8.所以我写这样的代码:

int[]

我发现{{1}}不能{{1}} 为什么呢?

1 个答案:

答案 0 :(得分:0)

由于类型不匹配,您可以通过映射到int而不是Object(然后int[]而不是Object[])进行修复。变化

Object[] lengthOfStrings = Arrays.stream(strings).map(String::length).toArray();
assertThat(lengths, is(new int[]{1, 2, 7}));

到(并且不要忘记变量名称需要匹配)类似

int[] lengthOfStrings = Arrays.stream(strings).mapToInt(String::length).toArray();
assertThat(lengthOfStrings, is(new int[]{1, 2, 7}));