Стандарт кодирования Null Check

У меня есть сомнения относительно стандарта кодирования нулевой проверки. Я хочу знать разницу между

if(a!=null)

и

if(null!=a)

какой из них лучше, какой из них использовать и почему?

Ответ 1

Оба одинаковы в Java, так как только логические выражения могут быть внутри if. Это просто предпочтение стиля кодирования программистом, и большинство из них используют null != a.

null != a - старая практика в языках программирования, таких как Java, С++ (называемых условиями Yoda).
Поскольку это действительно так, напишите if (a = null) и случайно присвойте null a, поэтому запись null сначала защищает, чтобы эта авария не происходила.

Ответ 2

Нет никакой разницы. Но первое является более распространенным явлением. Второе также называется "Условия Йоды" из-за его неестественной "грамматики".

Как только я работал над проектом, в котором руководство по кодированию должно было использовать if (null != a), потому что они думали, что разработчику проще понять, что постоянное значение должно всегда быть первым (как в CONSTANT_VALUE.equals(variable). раздражает меня.

Ответ 3

Они оба одинаковы. Это зависит от вашего стиля кодирования.

Ответ 4

С точки зрения компилятора они точно такие же. Но первая форма более читаема, поэтому я бы посоветовал вам использовать ее.

Ответ 5

Нет разницы между ними, если оператор работает на основе результата выражения так что напишите либо if(a!=null), либо if(null!=a) будет выдавать true или false, тогда результат будет оценен.

Так что не важно, что вы пишете, что вам нравится

Ответ 6

Оба они одинаковы. Хотя первый вариант является общим, второй вариант полезен, если вы знаете, что первая переменная не является нулевой

Пример "some value".equals(your_variable), некоторым значением может быть любое значение, которое, как вы знаете, не равно нулю. Это позволит избежать NPE, если your_variable null.

String str = "somevalue"; 

if(str != null && str.equals("somevalue")) { }

if("somevalue".equals(str)) { }

Оба условия будут одинаковыми, если str равно null или нет.