Android: невозможно вызвать toString () для примитива типа int - PullRequest
13 голосов
/ 12 июня 2010

Если я пытаюсь

nltxt = nllen.toString();

с nllen, являющимся

int nllen = nl.getLength();

, я получаю ошибку

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

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

Ответы [ 3 ]

29 голосов
/ 12 июня 2010

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

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

  1. String.valueOf(nltxt)

  2. "" + nltxt (или если у вас есть что-то полезное, чтобы написать вместе с номером, выполните "nltxt equals " + nltxt

  3. Выполните «автобокс» вручную: new Integer(nltxt).toString().

  4. Отформатируйте его некоторым образом: String.format("nltxt is %d which is bad%n", nltxt)

12 голосов
/ 12 июня 2010

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

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

6 голосов
/ 14 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...