2015-09-07 11 views
0
int i = 0; 
String[] b = new String[]{releaseId, i}); 

вызывает int cannot be converted to java.lang.StringINT не может быть преобразован в java.lang.String

Из того, что я знаю, что Java делает преобразование неявным String (в случае не-примитивов вызов ToString())?

Итак, что здесь не так?

Есть ли что-то другое в Java для Android ?!

+3

int i = 0; String [] b = new String [] {"" + releaseId, "" + i}); –

+2

^Пожалуйста, не делайте этого - это действительно не очень хорошая практика - да, это работает, но вы должны использовать 'String.valueOf();' –

+0

@Ed George, поэтому я опубликовал его как комментарий и не ответил. конечно ты прав. –

ответ

7

От того, что я знаю, java подразумевает неявное преобразование строк (в случае непримитимо вызывает вызов toString())? Так что тут не так?

Это верно для объектов. int - это примитивный тип, а не объект.

Используйте String.valueOf(i), чтобы получить строковое представление i

1

Да,

INT не может быть преобразован в java.lang.String

Java делает неявное String преобразование для объектов, не для примитивных типов.

Вам необходимо использовать Integer или String.valueOf(i).

0

Есть 2 «хороших» способа преобразования целого числа в строку. Integer.toString(i) или String.valueOf(i).

Это можно сделать примерно так: String s = "" + i;, но это считается неприятным запахом.