Приведение в Java магическим образом не преобразует данные из одного типа в другой. Скорее, он сообщает Java, что объект, хранящийся в переменной , на самом деле какого-то другого типа, что полезно при работе с наследованием или интерфейсами. См. этот вопрос StackOverflow для получения более подробной информации.
В этом случае значение, полученное из item.getValue()
, является целым числом. Попытка привести к String не работает и не может работать, потому что это не String . Это действительно целое число, и попытка вызвать методы String для него не будет работать.
Как уже упоминалось, вы можете преобразовать Integer в строку, используя Integer.toString(someInteger)
. Однако, поскольку вы делаете сравнение, вам, вероятно, следует просто сравнить значения как целые числа.