Вопрос о методах Java Primitive Types - PullRequest
1 голос
/ 06 ноября 2010

Меня смущают примитивные типы в Java и методы преобразования одного типа в другой.Если, скажем, у меня есть целое число и я хочу преобразовать его в строку, мне нужно использовать статический метод Integer или String, например

String.valueOf(some_integer);

Но если я хочу преобразовать перемешивание вЯ могу использовать что-то вроде

some_string.toCharArray();

Мой вопрос: почему?Зачем мне использовать статический метод для первого?

Ответы [ 5 ]

5 голосов
/ 06 ноября 2010

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

Если целое число было типа оболочки Integer, вы могли бы использовать someInteger.toString()

3 голосов
/ 06 ноября 2010

Поскольку String не является примитивным типом, это класс (у которого есть методы), тогда как целые, короткие, char и т. Д. Являются примитивами (у которых нет методов).

1 голос
/ 06 ноября 2010

Потому что примитивные типы - это просто примитив. У них нет методов.

0 голосов
/ 23 октября 2018

Примитивные типы не содержат методов-членов. Более того, они не являются объектом. Чтобы сделать примитивный тип как Object, мы можем использовать классы Wrapper. Используя классы-обертки, вы можете конвертировать int в объект Integer, а char в объект Character, и этот список продолжается.

Отвечая на ваш вопрос, String не является примитивным типом. Таким образом, вы можете сделать из Instance методы String. Принимая во внимание, что int является примитивным типом, поэтому вы должны использовать статические методы для достижения того же самого.

0 голосов
/ 06 ноября 2010

Но чтобы быть реалистичным, вам не нужно использовать String.valueOf (некоторые int). Вы можете сделать

при построении большой строки:

logger.debug("I did " + myInt + " things today!" );

или если само по себе

logger.debug( "" + myInt );
...