Использует устаревший метод java/lang/Integer ::(Ljava/lang/String;)V

#java #oop #math #java-8 #jvm

#java #ооп #математика #java-8 #jvm

Вопрос:

Я работаю над обновлением версии Java, и мне нужно исправить следующее утверждение :

Сообщение: класс masthead/auth/mesdb/MesDbAuthLogDAO использует устаревший метод java/lang/Integer::(Ljava/lang/String;)V

 @SuppressWarnings({ "rawtypes", "unchecked" })
    public List getLogsByLcrErrorCodeInLast(String code, long period) throws Exception {
        **Object params = new ObjectPair(new Integer(code), new MesDbUtil(ibatis).getPastMesDbDate(period));**
        List mesdbLogs = client.queryForList("LcrLog.getLogsByLcrErrorCodeInLast", params);
        Iterator mesdbLogsIter = mesdbLogs.iterator();
        List results = new ArrayList();
        while (mesdbLogsIter.hasNext()) {
            MesDbLcrLog mesdbLog = (MesDbLcrLog) mesdbLogsIter.next();
            results.add(mesdbLog.getLog());
        }
        return results;
    }
  

Необходимо заменить это целое число, чтобы остановить отображение этого сообщения.

Помощь будет оценена

Комментарии:

1. Попробуйте заменить new Integer(code) на Integer.valueOf(code) .

2. Прочитайте документацию , то есть javadoc <a rel="nofollow noreferrer noopener" href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html#(java.lang.String)» rel=»nofollow noreferrer»> Integer​(String s) : » Устарел. Редко уместно использовать этот конструктор. Используйте parseInt(String) для преобразования строки в int примитив или используйте valueOf(String) для преобразования строки в Integer объект.»

3. @ArnaudDenoyelle не могли бы вы рассказать мне, как в приведенном выше коде, пожалуйста, я довольно новичок в Java

Ответ №1:

Заменить new Integer(code) на Integer.valueOf(code) . То же самое относится и к другим оболочкам, таким как Long , Double и так далее.

Комментарии:

1. Действительно признателен за ваш ответ, но не могли бы вы просто сказать мне, как я могу это сделать в приведенных выше запросах кода.

2. Я только что написал это в ответе… Заменить new Integer(code) на Integer.valueOf(code) .