Java 实例化作为参数传递的类的枚举
我有一个方法:Java 实例化作为参数传递的类的枚举,java,generics,enums,compiler-warnings,Java,Generics,Enums,Compiler Warnings,我有一个方法: public对象实例化amostanyType(字符串stringToParse,类targetType){ ... if(targetType.isEnum()) 返回枚举值((类)targetType,stringToParse); } 它可以工作,但我收到了编译器警告。返回行的所有内容: Class is a raw type. References to generic type Class should be parameterized Enum is a raw t
public对象实例化amostanyType(字符串stringToParse,类targetType){
...
if(targetType.isEnum())
返回枚举值((类)targetType,stringToParse);
}
它可以工作,但我收到了编译器警告。返回
行的所有内容:
Class is a raw type. References to generic type Class should be parameterized
Enum is a raw type. References to generic type Enum should be parameterized
Type safety: The expression of type Class needs unchecked conversion to conform to Class
Type safety: Unchecked invocation valueOf(Class, String) of the generic method valueOf(Class, String) of type Enum
类是原始类型。泛型类型类的引用应该参数化
枚举是原始类型。对泛型类型枚举的引用应参数化
类型安全性:类型类的表达式需要未经检查的转换才能符合类
类型安全:枚举类型的泛型方法valueOf(类,字符串)的未选中调用valueOf(类,字符串)
有没有办法(除了@suppressWarnings)避免警告?任何类型转换?public T实例化(字符串stringToParse,类targetType){
public <T extends Enum<T>> T instantiate(String stringToParse, Class<T> targetType) {
...
return Enum.valueOf(targetType, stringToParse);
}
...
返回枚举值(targetType,stringToParse);
}
现在,在编译时检查
类
实例必须是枚举
类型,并且不必执行任何不安全的强制转换。到目前为止,我还没有找到解决方案,所以我认为这是不可能的。如果有人给我答案,我会接受的我做不到。这个方法还尝试实例化其他类型,而不仅仅是枚举,您需要更多地解释实际问题。我有一个方法,可以根据字符串表示和目标类型实例化许多不同的类型。它创建整数、字符、大小数等,也创建枚举。问题是编译器不喜欢原始枚举和类,也不喜欢未经检查的强制转换。我不喜欢警告和抑制它们,也没有办法调用这个方法。我的输入类型为:Class targetType
,因此当我调用此方法时,我必须执行生成相同警告的强制转换。我用编译器警告更新了我的问题