java - 泛型的使用是子类

标签 java generics

我有这个类 [1],我尝试将其与我的类 [2] 一起使用。但是,MyIdentityMapper 的泛型是错误的。我想创建一个通用类,当我使用它时(MyIdentityMapper),我会传递正确的类型。我应该如何在 MyIdentityMapper 中使用泛型?

[1]映射器类:

public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {...}

[2]身份类别:

public class MyIdentityMapper extends Mapper<K,V,K,V> {
  public void map(K key, V value, Context context) throws IOException, InterruptedException {
    context.write(key, value);
  }
}

最佳答案

您需要在 MyIdentityMapper 上声明 KV 类型参数,以便可以在类的其余部分中引用它们。

public class MyIdentityMapper<K, V> // ... rest doesn't change

关于java - 泛型的使用是子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33656479/

相关文章:

java - 在Java中,如何让子类决定使用哪种类型参数类作为重写方法参数?

java - 由于缺少 Spring boot 类,WebLogic 12.2.1.2.0 上的部署失败

java - 套接字连接请求被拒绝

java - Java跨线程函数调用

java - JPA:将数据库列映射到实体中的两个字段

java - 这是 HashMap 的正确用例吗

scala - 定义供 java 使用的 scala function1 类型错误

c# - 通用参数基类型 : "There is no implicit reference conversion from B to A"

c# - 创建 2 个字符数组的所有单词变体

c# - TResponse 必须是具有无参数构造函数的非抽象类型才能将其用作参数 TResponse