【发布时间】:2019-08-23 10:55:14
【问题描述】:
我列出了其中的对。我想先根据键对它们进行排序,如果键相同,则根据值进行排序。
我尝试了以下代码,但抛出异常不兼容类型:无法推断类型变量 T
List<Pair<Integer,Integer>> list = new ArrayList<>();
list.sort(Comparator.comparingInt(Pair::getKey).thenComparingInt(Pair::getValue);
错误:
不兼容的类型:无法推断类型变量 T (参数不匹配;无效的方法引用 类 Pair 中的方法 getKey 不能应用于给定类型 必需:无参数 找到:对象 原因:实际参数列表和形式参数列表的长度不同)
其中 T,K,V 是类型变量: T 扩展了在方法 comparisonInt(ToIntFunction) 中声明的 Object K 扩展类 Pair 中声明的 Object V 扩展类 Pair 中声明的 Object
【问题讨论】:
-
Pair来自哪个库/包? -
javafx.util.Pair
-
附带说明,除非您真正开发 JavaFX 应用程序,否则您不应该使用该类型,因为您正在添加重要的依赖项。从 JDK 11 开始,默认情况下甚至不包含 JavaFX。
-
我们可以逆序排列key,升序排列value吗?