将对象类型转换为Java原语
基本上,我想根据hashmap中存储的值将对象类型转换为:将对象类型转换为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<String, Class> typesMap = new HashMap();
typesMap.put("int", int.class);
typesMap.put("double", double.class);
我得到了一个错误:
java.lang.ClassCastException:java.lang.Integer不能转换为int
我想知道将对象类型转换为基元数据类型的正确方法?因为任何泛型方法
Class.cast()
都不能返回基元值。在您的情况下,最好转换为boxedjava.lang.Integer
type。因此,请按如下方式填写类型映射:
HashMap<String, Class<?>> typesMap = new HashMap<>();
typesMap.put("int", Integer.class);
typesMap.put("double", Double.class);
HashMap因为任何泛型方法Class.cast()
都不能返回原语值。在您的情况下,最好转换为boxedjava.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);