我有这个班级[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);
}
}
答案 0 :(得分:1)
您需要在K
上声明V
和MyIdentityMapper
类型参数,以便在课程的其余部分引用它们。
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);
}
}