Android: невозможно вызвать toString() для примитивного типа int

Если я попробую

nltxt = nllen.toString();

с nllen

int nllen = nl.getLength();

Я получаю сообщение об ошибке

Невозможно вызвать toString() для примитивного типа int.

Я хочу преобразовать int в строку, чтобы я мог отображать количество записей в Log... Почему это не работает?

Ответ 1

Примитивы не имеют полей или методов. Иногда компилятор будет "автобокс" вашего примитива в соответствующий класс, Integer в этом случае. Возможно, именно так вы и ожидали в этом случае. Иногда компилятор этого не сделает. В этом случае он автоматически не автобокс.

У вас есть несколько альтернатив:

  • String.valueOf(nltxt)

  • "" + nltxt (или если у вас есть что-то полезное для записи вместе с номером, сделайте "nltxt equals " + nltxt

  • Сделайте "автобоксинг" вручную: new Integer(nltxt).toString().

  • Отформатируйте его по-своему: String.format("nltxt is %d which is bad%n", nltxt)

Ответ 2

Примитивные типы не являются объектами и как таковые не имеют никаких методов.

Чтобы преобразовать его в использование строки String.valueOf(nlTxt).

Ответ 3

Вы также можете использовать Integer.toString(nllen); для этого.