Optional int parameter 'pId' is present but cannot be translated into a null value due to being declared as a primitive type.


接口測試的時候遇到了一個問題,導致測試阻斷了好久,在此記錄,謹防忘記。

具體報錯如下:
Optional int parameter 'pId' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.

接口報錯.png

接口測試代碼如下:

圖片.png

出問題的就是這個pId,
百度了下這個問題的原因,歸根結底就是參數類型錯誤了:

可選的參數 pId不存在,但無法被轉換為NULL,是因為你把它給定義為 基本類型。建議將其修改為 包裝類型。

就是說,你定義了參數:String pId,但沒有值,那按理來說按照null來處理,結果倒霉的事情來了:pId= null; 是不允許的,因為基礎類型不能賦值為null。
所以建議把參數定義修改為Inteter pId.


那為啥用Integer可以,用int不行呢,原因如下:

Integer 允許為null值,int默認0,數據庫里面如果有個字段沒有值可能默認值為null,所以用Integer。

在hashmap中只能用Integer而不能用int

int是基本數據類型,定義一個整型數據。Integer是一個類,在hashmap中代表一個對象,所以用object表示。

      </div>

原文地址:https://www.jianshu.com/p/1153070468e1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM