Условия Йоды. Проверка на null JAVA

public static <T> boolean isNullOrEmpty(Collection<T> c) {
    return (null == c) || (c.size() == 0);
}
 
[ Wiki Условия Йоды ]
 
 
 
 if ("text".equals(str)) {...}
 
 
 if($a = 'b'){
/*Этот код будет выполнятся всегда, 
  так как была допущена опечатка
*/
}
if('b' = $a){
/*Этот код упадет с ошибкой парсера.
  Нельзя записать в строку переменную :)
*/
}
if('b' == $a){
/* А этот будет работать, как ожидается.  */
}
 
 
Условия Йоды (Yoda conditions) – “безопасный” стиль записи выражений сравнения, заключающийся в написании константы слева от оператора сравнения (то есть 5 == a вместо привычного а == 5).
По-началу такая запись очень не привычна, но такой стиль призван предотвратить ошибку – использование оператора присваивания “=” вместо сравнения “==“. Ошибочное использование присваивания превращает нотацию “Йоды” в попытку изменить константу, вызывая ошибку на этапе компиляции, что исключает возможность появления в готовой программе ошибок данного вида, а также облегчает их поиск и исправление в новом коде.
И так, в  классической нотации проверка переменной на равенство некоторой константе записывается следующим образом:
то есть переменная, операция сравнения и константа. Данная конструкция уязвима для известной ошибки:
Такой код остается синтаксически правильным, и при ненадлежащем тестировании может остаться в программе на долгие годы и стать причиной серьёзной уязвимости.
При использовании нотации Йоды переменная и константа меняются местами, так что константа оказывается слева:
При такой нотации в случае опечатки в операторе сравнения получается синтаксически некорректное присваивание константе и программа не будет работать, пока ошибка не будет найдена и исправлена.

Совершенно аналогично для функций:
1
2
3
if ( someFunction() = $variable ) { // ОШИБКА при компиляции
    /* ... */
}
 

Комментариев нет:

Отправить комментарий