Я только что понял, что когда я делаю это на Java:
for(int x = 0; x < 3; x++) { String bla = "bla"; bla += x.toString(); }
Он (в данном случае Netbeans) скажет мне, что я не могу разыменовать свое целое число x таким образом (как я бы в C #).
Почему это?
Примитивные типы не являются объектами в Java, поэтому для этого вам нужно использовать другие методы, в данном случае:
Integer.toString(x);
int является примитивом, а не объектом, и, следовательно, не имеет метода toString ().
Но вы можете сделать это:
String bla = "bla" + x;
int не объект, а примитивный тип. Таким образом, вы не можете вызывать методы из int. Если вы определили его как Integer, сообщение об ошибке исчезнет. Тем не менее, вы действительно можете просто избавиться от toString, потому что x будет автоматически приведен к String.
int
Integer
toString
x
String
Вы объявили x типа int, который является примитивным значением, а не объектом.Примитивы не могут иметь методы (например, toString()), вызываемые на них.Вы можете использовать примитивную оболочку Integer, если хотите вызвать toString(), или вы можете просто удалить вызов toString(), и специальная обработка Java строк и примитивов сама по себе позаботится.
toString()
x не является Integer, это int, а int является примитивным типом, поэтому у него нет toString.
В java примитивные типы (boolean int, short, char, long, float, double) НЕ являются объектами.
Однако они имеют тип оболочки (Integer, Character, ...), который имеет 1) статические функции и 2) их экземпляры могут переносить примитивные значения.