Java 带泛型的静态工厂方法
我有一个类Java 带泛型的静态工厂方法,java,generics,Java,Generics,我有一个类EnumConverter,因为您想在映射中存储不同的子类型,编译器无法知道您正在接收哪个实际的子类型。我认为你必须添加一个演员阵容: public static <T extends Enum<?>> EnumConverter<T> getInstance(Class<T> enumClass) { return (EnumConverter<T>) cache.get(enumClass); } public
EnumConverter,因为您想在映射中存储不同的子类型,编译器无法知道您正在接收哪个实际的子类型。我认为你必须添加一个演员阵容:
public static <T extends Enum<?>> EnumConverter<T> getInstance(Class<T> enumClass) {
return (EnumConverter<T>) cache.get(enumClass);
}
public static谢谢,这很有效!但是我仍然得到一个警告:类型安全:从EnumConverter取消强制转换答案确实是@SuppressWarnings(“Unchecked”)
:
private static final Map<Class<?>, EnumConverter<? extends Enum<?>>>
public static <T extends Enum<?>> EnumConverter<T> getInstance(Class<T> enumClass) {
return (EnumConverter<T>) cache.get(enumClass);
}