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表示。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,908評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,764評論 18 399
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,769評論 0 33
  • 一、基本數據類型 注釋 單行注釋:// 區域注釋:/* */ 文檔注釋:/** */ 數值 對于byte類型而言...
    龍貓小爺閱讀 4,288評論 0 16
  • 好久沒來寫文了,想來心情甚好!回憶最近的的生活,身體和諧,心情順暢,焦點都聚集在買買買,真是shopping是治療...
    沉博絕麗1703艷德熟生閱讀 122評論 0 0