Допустим, у меня есть следующее:
int a = 2; Number b = (Number) a; System.out.println(b); // Prints 2
http://java.sun.com/docs/books/jls/first_edition/html/15.doc.html#238146 говорит о том, что примитивное значение не может быть приведено к ссылочному типу. Знает ли Java создание Integer из примитива int, а затем приведение к суперклассу? Как именно Java справляется с этим за кулисами? Спасибо!
Процесс называется autoboxing . Короче говоря, компилятор видит, что требуется обертка (Integer), а не примитив (int), и автоматически добавляет преобразование. И на самом деле ваше приведение к Number не обязательно.
Integer
int
Number