Метод valueOf(String) в типе Integer неприменим для аргументов (int)

Я получаю сообщение об ошибке Метод valueOf(String) в типе Integer неприменим для аргументов (int) для строки ниже, когда я компилирую код в jdk1.4(j2sdk1.4.1_05) . Если я скомпилирую тот же код в jdk1.6.0_14, код работает нормально.

HashMap offMap = new HashMap(); offMap.put("price", Integer.valueOf(offer.getPrice()));

Мой вопрос в том, почему этот код дает ошибку при компиляции в jdk1.4, а не в jdk1.6. Любые предложения для компиляции?

Примечание. Это предварительно написанный код. Нужно ваше предложение по изменению кода и скомпилируйте его без ошибок.


person SuRa    schedule 12.01.2015    source источник


Ответы (4)


Для Java 1.4, я думаю, вам нужен Integer(int) конструктор вроде

offMap.put("price", new Integer(offer.getPrice()));

Integer.valueOf(int) не t доступен в Java 1.4 (в Javadoc говорится, что он был добавлен в Java 1.5).

person Elliott Frisch    schedule 12.01.2015


Поскольку в более поздних версиях Java класс Integer имеет метод valueOf(int).

Тебе стоит попробовать:

offMap.put("price", new Integer(offer.getPrice()));
person Jason    schedule 12.01.2015

какое бы значение ни находилось в "offer.getPrice()", оно не должно быть в строке, и если это так, оно покажет ошибку, как вы упомянули выше

поэтому вы должны попробовать приведенный ниже код

offMap.put("price", Integer.parseInt(offer.getPrice().toString()));

or

offMap.put("price", Integer.valueOf(offer.getPrice().toString()));

person Vishal Gabani    schedule 09.10.2018