方法引用,例如静态方法的方法

时间:2018-01-14 06:11:33

标签: java method-reference

很抱歉没有明确标题,我还是新手,甚至是英文。

Collections.sort(aList, (s1, s2) -> Float.compare(s1.getAFloat(), s2.getAFloat()));

如上所述,我可以使用方法参考吗?如果s1s2Float并且他们不使用get-a-float方法,那么事情会变得更容易:

Collections.sort(aList,Float::compare);

s1.getAFloat()我不知道如何使用方法参考,甚至可能使用它,谢谢你的回答!

2 个答案:

答案 0 :(得分:1)

您可以使用

Collections.sort(aList, Comparator.comparing(ItemType::getAFloat));

如果检索到的类型已经无法排序,您可以为comparing添加一个额外的比较器。

答案 1 :(得分:0)

不,你不能。请查看以下代码。

List<Float> aList = Arrays.asList(5.2f, 9.7f);
Collections.sort(aList, (s1, s2) -> Float.compare(s1, s2));
Collections.sort(aList, Float::compare);

如果您的列表元素直接属于Float类型,那么您将使用 method-reference

如果元素不是Float类型,那么你可以这样做。

List<String> aList2 = Arrays.asList("5.2f", "9.7f");  
aList2.stream().map(Float::valueOf).sorted(Float::compare)
                 .collect(Collectors.toList());