泛型的使用是一个子类

时间:2015-11-11 17:37:56

标签: java generics

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

[1] Mapper类:

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);
  }
}

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

你必须告诉java什么是你的泛型,类似的东西

class Mapper<K, V, X, M> {

}

class MyIdentityMapper<K,V,X,M> extends Mapper<K,V,X,M> {
    public void map(K key, V value, Context context) throws IOException, InterruptedException {
        System.out.println(k);
        System.out.println(v);
        System.out.println(x);
        System.out.println(m);
    }
}