簡體   English   中英

將對象類型轉換為基本Java

[英]Typecasting Objects to primitives Java

基本上,我想根據存儲在哈希圖中的值來對對象進行類型轉換:

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

所以我有一個對象,我想用intdouble之一進行類型轉換,然后從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM