Есть несколько шаблонов для проверки того, был ли параметр для метода присвоен значение 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
, я могу отследить его до точной переменной, так как у меня есть только одна такая проверка на строку.
Какую проверку вы предпочитаете и почему?