[英]Typecasting Objects to primitives Java
基本上,我想根據存儲在哈希圖中的值來對對象進行類型轉換:
HashMap<String, Class> typesMap = new HashMap();
typesMap.put("int", int.class);
typesMap.put("double", double.class);
所以我有一個對象,我想用int
或double
之一進行類型轉換,然后從JSON中檢索該對象為:
//opencvParamsArray = ["int", 10];
Class paramClass = (Class) typesMap.get(opencvParamsArray.getString(0));//"int"
paramClass.cast(opencvParamsArray.getInt(1));
我得到錯誤:
java.lang.ClassCastException:無法將java.lang.Integer強制轉換為int
我想知道將對象類型轉換為原始數據類型的正確方法嗎?
由於任何通用方法Class.cast()
都不能返回原始值。 在您的情況下,最好將其強制轉換為帶框的java.lang.Integer
類型。 因此,像這樣填充您的typesMap
:
HashMap<String, Class<?>> typesMap = new HashMap<>();
typesMap.put("int", Integer.class);
typesMap.put("double", Double.class);
采用:
int i = intObj.intValue();
System.out.println(i);
這會將Java Integer類轉換為int類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.