У меня недостаточно контекста, чтобы дать вам правильный ответ, но я предлагаю вам сделать код неизменным как можно больше. Используйте public final
поля. Не более getters
или setters
: каждое поле должно быть определено constructor
. Ваш код короче, более читабелен и не позволяет писать код с побочными эффектами.
Это не мешает вам передавать пустые аргументы в ваш конструктор, хотя ... Вы все равно можете проверить каждый аргумент, как предложено @cletus, но я предлагаю вам бросить IllegalArgumentException
вместо NullPointerException
, который не не дают никаких новых подсказок о том, что вы сделали.
Во всяком случае, это то, что я делаю столько, сколько могу, и это значительно улучшило мой код (читабельность, стабильность). Все в моей команде делают это, и мы очень довольны этим. Мы узнали, что, когда мы пытаемся написать некоторый код erlang
, где все неизменно.
Надеюсь, это поможет.