Смешение использования примитивных типов данных и их соответствующих классов-оболочек в Java может привести к множеству ошибок. Следующий пример иллюстрирует проблему:
int i = 4;
...
if (i == 10)
doStuff();
Позже вы увидите, что вы хотите, чтобы переменная я была либо определена, либо undefined, поэтому вы изменяете описанную выше процедуру:
Integer i = null;
Теперь проверка равенства не выполняется.
Является ли хорошей практикой Java всегда использовать примитивные классы-оболочки? Очевидно, что некоторые ошибки будут устранены раньше, но каковы же недостатки? Это влияет на производительность или объем памяти приложения? Есть ли какие-нибудь скрытые gotchas?