Java 泛型的使用是一个子类
我有一个类[1],我尝试将它用于我的类[2]。但是,Java 泛型的使用是一个子类,java,generics,Java,Generics,我有一个类[1],我尝试将它用于我的类[2]。但是,MyIdentityMapper的泛型是错误的。我想创建一个泛型类,当我使用它时(MyIdentityMapper),我会传递正确的类型。我应该如何在MyIdentityMapper中使用泛型 [1] 映射器类: public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {...} 公共类映射器{…} [2] 身份类别: public class MyIdentityMapper
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扩展映射器{
公共void映射(K键、V值、上下文上下文)引发IOException、InterruptedException{
编写(键、值);
}
}
您需要在MyIdentityMapper
上声明K
和V
类型参数,以便在类的其余部分中引用它们
public class MyIdentityMapper<K, V> // ... rest doesn't change
公共类MyIdentityMapper/。。。休息不会改变
您必须告诉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);
}
}
类映射器{
}
类MyIdentityMapper扩展映射器{
公共void映射(K键、V值、上下文上下文)引发IOException、InterruptedException{
系统输出println(k);
系统输出打印Ln(v);
系统输出println(x);
系统输出打印项次(m);
}
}