[英]instanceOf Integer fails for a number in Object
我有一個從函數中獲得的可變文檔...內容未知。 但為簡單起見,我正在創建一個示例文檔:
MutableDocument doc = new MutableDocument();
doc.setString("l", "j");
doc.setInt("v", 20);
List<String> keys = doc.getKeys();
for(i = 0; i< 2; i++){
Object v = doc.getValue(i);
if (v instanceOf String){
//finds l correctly
}else if (v instanceOf Integer){
//nothing happens here
}
}
從這里: int instanceof Integer ,我注意到 int 不是 Integer 但我將如何處理上述情況?
更新:謝謝大家。 我剛剛做了 value.getClass() 並且它確實很長。
好吧, v
已經是一個Integer
而不是int
。
這取決於您的setInt
和getValue
方法的實現方式,但在任何情況下, v
都不能是以下行中的int
:
Object v = doc.getValue(i);
那是因為int
不能存儲到Object
,因為int
是原始類型。 相反,它被自動裝箱成一個Integer
。
順便說一句,由於getValue
可以根據您的代碼判斷返回一個String
,因此它也不能返回原始類型。 所以getValue
必須返回一個Object
。 當方法返回時,曾經是int
值保證被自動裝箱為Integer
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.