В Java:
int count = (Integer) null;
генерирует исключение java.lang.NullPointerException.
Почему это не создает исключение Class Cast для облегчения понимания программистом?
Почему это исключение было выбрано над любым другим исключением?
источник
valueOf()
фабричные методы, а не создает новые экземпляры для бокса.