【发布时间】:2022-06-15 23:45:51
【问题描述】:
Set<String> premiumStrings = new HashSet<>();
Set<String> sortedSet = new TreeSet<>(Comparator.comparing(premiumStrings::contains).thenComparing(Comparator.naturalOrder()));
这不起作用,因为premiumStrings::contains 可以接受任何对象而不仅仅是字符串。可以用(String s) -> premiumStrings.contains(s) 替换它,但是有没有办法限制参数类型,同时仍然使用方法引用 lambda?
(具体来说,问题是The method thenComparing(Comparator<? super Object>) in the type Comparator<Object> is not applicable for the arguments (Comparator<Comparable<? super Comparable<? super T>>>)。)
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/24436871/…
标签: java lambda method-reference