【发布时间】:2019-07-31 09:51:44
【问题描述】:
我想使用带有 Comparator 参数的流 api 排序,但它没有正确排序。我总是例外。
我想对一个引用另一个对象的对象进行排序,而被引用的对象有一个字符串,所以我想把它排序到它的长度。
这是我的主要方法。
List<Person> liste = Arrays.asList(new Person(new Info("akin"))
,new Person(new Info("lars"))
,new Person(new Info("aaa")));
liste.stream()
.map(p -> p.f)
.map(f -> f.name)
.sorted((s,s2) -> s.length() - s2.length())
.forEach(System.out::print);
【问题讨论】:
-
你得到什么样的异常?
-
MainStart.lambda$main$0(MainStart.java:43) 处的线程“main”java.lang.NullPointerException 中的异常 .....
-
是不是因为是可选方法?
-
@bratan 没有你正在执行的实际代码的完整细节,很难说为什么它会导致
NullPointerException。尽管您仍然必须检查每个对象的person、info和name的值不应该是null,但这就是可能出现异常的地方。
标签: java sorting java-stream comparator