Если это значение может быть пустым, вы можете обнаружить, что в вашем дизайне вам нужно что-то еще.
Есть две возможности - либо значение является просто данными (код не будет работать по-другому, заполнен он или нет), либо он фактически указывает, что у вас есть два разных типа объектов (код действует по-разному если значение равно нулю)
Если это просто данные для отображения / хранения, вы можете подумать об использовании реального DTO - такого, у которого его вообще нет в качестве первоклассного члена. У них обычно есть способ проверить, установлено ли значение или нет.
Если в какой-то момент вы проверяете ноль, возможно, вы захотите использовать подкласс, потому что, когда есть одно различие, обычно их больше. По крайней мере, вам нужен лучший способ обозначить вашу разницу, чем «if primitiveIntValue == null», который на самом деле ничего не значит.