我有要与班级[2]一起使用的班级[1]。但是,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);
  }
}

最佳答案

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

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

10-08 10:58