Java 1.4: приведение примитивного типа к объекту (связь с производительностью?) - PullRequest
5 голосов
/ 16 марта 2011

Это на самом деле связано с вопросом, который я задавал ранее, но я остался висеть на этой детали.Я ограничен Java 1.4 и хочу привести тип int к Object.Мне действительно нужно использовать объект класса Integer или есть способ его непосредственного приведения (в 1.4 нет автобокса).Стоит ли платить за этот «ручной бокс» по сравнению с импортом целого класса с 3-го уровня на 1-й, увеличивая таким образом связь?

Ответы [ 2 ]

9 голосов
/ 16 марта 2011

В Java 1.4 нет простого способа преобразовать примитив в его объектно-близнец, но есть медленный и быстрый способ. new Integer(int) медленно, Integer.valueOf(int) быстро. То же самое верно для всех других типов чисел.

В Java 5 вам не нужно столько кода, но внутри, компилятор вставит вызов для valueOf() для вас, когда вы используете автобокс.

4 голосов
/ 16 марта 2011

В вашей среде Java 1.4 вы не можете привести int к объекту, поскольку он не является объектом.

Java различает примитивные типы и ссылочные типы. Int является примитивным типом. Так же как логическое, байтовое, символьное, короткое, длинное, плавающее и двойное.

Значение ссылочного типа является ссылкой на некоторый объект. «Объект» является корневым классом всех объектов.

В Java 1.5 и более поздних версиях автобокс приведет к тому, что вторая переменная будет указывать на объект Integer, содержащий то же значение, что и примитивная переменная i.

    int i = 99;
    Object o = (Object) i;
...