java - 泛型和比较器

标签 java generics

我正在研究泛型,发现以下代码在比较方法 处出现编译时错误。

Multiple markers at this line - Cannot infer type argument(s) for comparing(Function) - The type A does not define m1(Object) that is applicable here

 class A<T> {
    String m1() {
        return null;
    }
}

class B {
    void test() {
        Comparator<A<String>> target = Comparator.comparing(A::m1).thenComparing(A::m1);
    }
}

有人可以帮助我理解这种行为吗?我该如何解决这个问题?

最佳答案

如果您在 comparing 方法中指定确切的泛型类型,代码将编译。

Comparator<A<String>> target =
    Comparator.<A<String>, String>comparing(A::m1).thenComparing(A::m1);

关于java - 泛型和比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44625657/

相关文章:

scala - 使用ScalaQuery的通用存储库

java - AWS - 使用 Java 访问 s3 存储桶中文件夹中的文件

java - 数组类型删除

java - Nice 编程语言作为 Java 泛型的替代品

c# - 合并泛型

java - 声明 function.Consumer<T> 可以消耗一切?

java - Hibernate Ehcache 不适用于 SQL Native 查询缓存

java - AppiumGUI 中的 Appium 启动器

java - 解决方案: java. lang.NoSuchMethodError:没有静态方法isCtrlPressed(Landroid/view/KeyEvent;) OR (Landroid/support/v4/view/KeyEventCompat)

java - 从实体构造函数处理