Ответ
Да, это возможно благодаря механизму автоупаковки (autoboxing), введённому в Java 5. Компилятор автоматически преобразует примитивное значение int в объект класса-обёртки Integer.
Пример автоупаковки:
Integer number = 42; // Автоматически преобразуется в: Integer.valueOf(42)
Важное предупреждение о сравнении (==):
Оператор == сравнивает ссылки на объекты, а не их значения. Из-за кэширования в диапазоне -128..127 сравнение может давать неочевидные результаты.
Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true (один кэшированный объект)
Integer c = 128;
Integer d = 128;
System.out.println(c == d); // false (созданы два разных объекта)
Правильный способ сравнения: Всегда используйте метод .equals() для сравнения значений объектов-обёрток.
System.out.println(c.equals(d)); // true (сравниваются значения 128)
Автораспаковка (unboxing): Обратный процесс также работает автоматически.
Integer boxed = 100;
int primitive = boxed; // Автоматически преобразуется в: boxed.intValue()