关键提示:注意sorted
有否入参。
下面是出错的代码:
int[] arr = new int[]{5, 7, 3, 8, 2, 4, 9};
Arrays.stream(arr).sorted((a,b) -> Integer.compare(a,b)).forEach(a -> System.out.println(a));
错误提示如下(“这个提示其实也不是很准确”):
问题分析
compare
方法报错,看起来是入参不对。入参是sorted
方法的lambda表达式注入,这样话要看下sorted
方法。
查看sorted方法提示,发现int
数组的stream
已经是IntStream
,而IntStream.sorted()
方法无入参,如下图:
解决方案
去除sorted方法入参
int[] arr = new int[]{5, 7, 3, 8, 2, 4, 9};
// Arrays.stream(arr).sorted((a,b) -> Integer.compare(a,b)).forEach(a -> System.out.println(a));
Arrays.stream(arr).sorted().forEach(a -> System.out.println(a));
如果您的问题没有解决,欢迎留言讨论,让更多的人参与进来。