簡體   English   中英

instanceOf Integer 對於 Object 中的數字失敗

[英]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

這取決於您的setIntgetValue方法的實現方式,但在任何情況下, 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.

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