Существует несколько шаблонов для проверки, было ли параметру для метода присвоено значение null
.
Во-первых, классический. Это часто встречается в самодельном коде и понятно для понимания.
public void method1(String arg) {
if (arg == null) {
throw new NullPointerException("arg");
}
}
Во-вторых, вы можете использовать существующий фреймворк. Этот код выглядит немного лучше, потому что он занимает только одну строку. Недостатком является то, что он потенциально вызывает другой метод, который может заставить код работать немного медленнее, в зависимости от компилятора.
public void method2(String arg) {
Assert.notNull(arg, "arg");
}
В-третьих, вы можете попытаться вызвать метод без побочных эффектов для объекта. Поначалу это может показаться странным, но у него меньше токенов, чем в предыдущих версиях.
public void method3(String arg) {
arg.getClass();
}
Я не видел третий широко используемый шаблон, и мне кажется, что я сам его изобрел. Мне нравится это за его краткость и потому, что у компилятора есть хорошие шансы полностью его оптимизировать или преобразовать в одну машинную инструкцию. Я также компилирую свой код с информацией о номере строки, поэтому, если выдается NullPointerException
, я могу отследить его до точной переменной, поскольку у меня только одна такая проверка на строку.
Какой чек вы предпочитаете и почему?