2017-07-21 36 views
1

我試圖開發利用澤西球衣採用空字符串作爲有效的整數值

樣本REST API我有以下POJO類

public class TestPOJOObject{ 

String userName; 
int userId; 

//Getters and Setters 

} 

我試着打電話給我的API有兩種方式

  1. 隨着身體{"userName" : "Shiv" , "userId" : "abcd"}

對於本請求澤西引發以下錯誤:

Can not construct instance of java.lang.Integer from String value 'abcd': not a valid Integer value 
at [Source: org.glassfish.jersey.me[email protected]805f848; line: 1, column: 50] (through reference chain: com.sample.pojo.TestPOJOObject["useId"]) 

這是完全正常的。

  • 當嘗試與身體{"userName" : "Shiv" , "userId" : " "}
  • API被成功執行調用。我監視了支持的值,對於userId,它是'0'。

    我無法理解,空字符串的值如何被接受並賦值爲'0'。

    我想了解後端實際發生的這種行爲。

    我正在使用Jersey 2.x.

    回答

    1

    由於您已經使用userId的原始int,因此如果庫爲空,則它將該值轉換爲0。如果你使用包裝Integer,你會得到null作爲值。