将对象类型转换为Java原语

将对象类型转换为Java原语,java,class,classcastexception,Java,Class,Classcastexception,基本上,我想根据hashmap中存储的值将对象类型转换为: HashMap<String, Class> typesMap = new HashMap(); typesMap.put("int", int.class); typesMap.put("double", double.class); 我得到了一个错误: java.lang.ClassCastException:java.lang.Integer不能转换为int 我想知道将对象类型转换为基元数据类型的正确方法?因为任

基本上,我想根据hashmap中存储的值将对象类型转换为:

HashMap<String, Class> typesMap = new HashMap();
typesMap.put("int", int.class); 
typesMap.put("double", double.class); 
我得到了一个错误:

java.lang.ClassCastException:java.lang.Integer不能转换为int


我想知道将对象类型转换为基元数据类型的正确方法?

因为任何泛型方法
Class.cast()
都不能返回基元值。在您的情况下,最好转换为boxed
java.lang.Integer
type。因此,请按如下方式填写
类型映射:

HashMap<String, Class<?>> typesMap = new HashMap<>();
typesMap.put("int", Integer.class); 
typesMap.put("double", Double.class); 

HashMap因为任何泛型方法
Class.cast()
都不能返回原语值。在您的情况下,最好转换为boxed
java.lang.Integer
type。因此,请按如下方式填写
类型映射:

HashMap<String, Class<?>> typesMap = new HashMap<>();
typesMap.put("int", Integer.class); 
typesMap.put("double", Double.class); 
HashMap使用:

这将Java Integer类转换为int类型。

使用:


这会将Java Integer类转换为int类型。

我事先不知道数据类型,因此无法使用
int I=intObj.intValue()
@ZdaR如何知道可以调用
getInt
?我事先不知道数据类型,所以不能使用
inti=intObj.intValue()
@ZdaR您如何知道可以调用
getInt
int i = intObj.intValue();
System.out.println(i);