2015-08-18 6 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») Но при этом я получаю несовместимых типов ошибок: String не могут быть преобразованы в Integer – 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)); } прочее { setTarifId (null); } коды все еще пропущены при отладке – Fadil

0

Возможно, вы можете использовать try catch, если есть NumberFormatException.

Попробуйте это:

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

Кроме того, вам нужен ваш setTarifId() ожидает целое число, или 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

Смежные вопросы