你好我有哈希映射值:Java的泛型类投
private static final LinkedHashMap<Class<? extends Annotation> , Class<? extends AGenerator<?>>> annotationGeneratorMap = new LinkedHashMap<Class<? extends Annotation>, Class<? extends AGenerator<?>>>();
和我的数字生成器看起来像:
public abstract class NumericGenerator<T extends Number> extends AGenerator<T>{
public NumericGenerator(Field field) {
super(field);
// TODO Auto-generated constructor stub
}
public T random() {
// TODO Auto-generated method stub
return null;
}
}
而且我有问题,当我需要把这个类转换HashMap的:
annotationGeneratorMap.put(GenerateNumeric.class, NumericGenerator.class);
而在日食我有错误的方法并不适用于ARG ument?
但:
annotationGeneratorMap.put(GenerateNumeric.class, (Class<? extends AGenerator<?>>) NumericGenerator.class);
和@SuppressWarnings( “未登记”)为好..:/
我能做到这一点没有铸造? (Class<? extends AGenerator<?>>) NumericGenerator.class
是,'X'是AGenerator >''的一个亚型。但“X”不是通用的,与OP的例子不同。 – irreputable
@Misrable Variable,但考虑类似您的X类用户泛型的情况:class X implements AGenerator 这是不允许的:/ –
@irreputable,Lukasz谢谢。了解。 –