2015-08-18 70 views
-2

下面我有以下代碼:Java的字符串轉換到整數

private Integer mTarifId; 

    public Integer getTarifId() { 
     return mTarifId; 
    } 

    public void setTarifId(Integer tarifId) { 
     this.mTarifId = tarifId; 
    } 

我已經初始化了一個名爲「mTarifId」變量。我需要在下面的代碼中使用它。

if (!Objects.equals(mTarifId, null)) { 
      query = mEntityManager.createQuery("FROM TarifListeCalendrierEntity WHERE tarifListeId=:pId") 
        .setParameter("pId", mTarifId); 
      List<TarifListeCalendrierEntity> tarifListCalendrierList = query.getResultList(); 
      if (!tarifListCalendrierList.isEmpty()) { 
       TarifListeCalendrierEntity tarifListCalendrier = tarifListCalendrierList.get(0); 
       request.setAttribute("tarif_list_calendrier", tarifListCalendrier); 
      } 
     } 

但爲了做到這一點,我需要將其轉換爲一個整數「的doGet」

 String tarifId = request.getParameter("tarifid"); 

     if (!Objects.equals(tarifId, null)) { 
      setTarifId(Integer.valueOf(tarifId)); 
     }else { 
      setTarifId(null); 
     } 

請幫助識別我在做什麼錯。

+3

請描述錯誤你是從代碼示例獲得。 –

+0

當調試這行代碼時跳過'if(!Objects.equals(mTarifId,null)){'表示mTarifId的值仍爲null。 – Fadil

+0

一個朋友告訴我用這樣的東西在mTarifId獲得價值 mTarifId =的request.getParameter(「tarifid」) 但是,當這樣做,我發現了錯誤不兼容的類型:字符串不能轉換爲整數 – Fadil

回答

0

每當其他條件被執行,爲什麼它是空的。

String tarifId = request.getParameter("tarifid"); 

     if (tarifId!=null) 

用於將類型轉換爲整型的字符串。

Integer.parseInt(String); 
+0

我很困惑,請更具體的 – Fadil

+0

更改你的條件如我所說,讓我知道。 –

+0

我修改它爲建議String tarifId = request.getParameter(「tarifid」); if(tarifId!= null)setTarifId(Integer.valueOf(tarifId)); } else { setTarifId(null); } 代碼仍然在調試時跳過 – Fadil

0

如果有任何NumberFormatException,你可以使用try catch嗎?此外

String tarifId = request.getParameter("tarifid"); 
Integer number; 
try{ 
    number = Integer.valueOf(tarifId); 
} catch(NumberFormatException e){ 
    number = 0; 
} 
setTarifId(number) 

,你需要你的setTarifId()期待一個Integer或int可能是罰款:

試試這個?

0

您的實際問題是您的請求參數。可能會發生您的mTarifId甚至未設置請求參數tarifid

你還沒有提到你如何設置它。因此,如果此參數實際設置或沒有,請檢查該代碼。

+0

你是對的...這是應該如何設置我認爲 mTarifId = Integer.valueOf(請求。的getParameter( 「tarifid」)); – Fadil

+0

如果請求,它會拋出** NUMBER FORMAT EXCEPTION **,getParameter(「tarifId」)返回null或空白。 – SacJn

0

這正是我需要的:

mTarifId = Integer.valueOf(request.getParameter("tarifid")); 
+0

而不是重新發布其他用戶的答案,您應該簡單地上傳和/或接受他們的答案。 – durron597