Я думал, что понимаю концепцию класса (объекта) класса, но, читая об этом в Java API, я нашел это:
Примитивные типы Java (boolean, byte, char, short, int, long, float и double) и ключевое слово void также представлены как объекты класса.
Я думал, что понимаю концепцию класса (объекта) класса, но, читая об этом в Java API, я нашел это:
Примитивные типы Java (boolean, byte, char, short, int, long, float и double) и ключевое слово void также представлены как объекты класса.
Феномен на autoboxing
и unboxing
— это то, что вам нужно. В java есть некоторые примитивы для удобства. Все они имеют wrapper
классов. Это: Integer
, Double
, Boolean
и т. д.
Автоупаковка отвечает за перенос primitive
в Wrapper
каждый раз, когда ожидается Wrapper
, но передается primitive
. С другой стороны приходит распаковка. Когда это primitive
ожидается, но Wrapper
пройдено, распаковке удастся извлечь правильное значение.
Это хорошо описано здесь
Пример:
Integer one = new Integer(1);
int i = one.intValue();
void printInteger(int i) {
System.out.println(i);
}
printInteger(one);
Никаких исключений не будет — one
будет распакован в int
и напечатан.
java 1.5
, мы все его используем.
- person xenteros; 09.08.2016
Разница в том, что примитивы — это просто зоны памяти, и когда вы используете ключи, вы сообщаете компилятору, как «видеть» эти области. В то время как соответствующие объекты, такие как Integer или Character, являются объектами, у которых есть методы для работы с этими типами, и они рассматриваются как объекты.
The Void class is an uninstantiable placeholder class to hold a reference to the Class object representing the Java keyword void.
- person Suresh Atta   schedule 03.08.2016