2015-03-28 2 views
-1

пожалуйста, вы можете сказать мне exactely чем разница между этоСтрока между двумя предложениями

if(myString.equals("test")) { } 

И

if("test".equals(myString)) { } 
+0

Первый, кто выбросит NPE, будет myString равным null, а второй - false. Это также называется условиями Йоды. Там же пример в википедии http://en.wikipedia.org/wiki/Yoda_conditions –

ответ

1

Если myString является null, то есть

null.equals("test") --> NullPointerException 

"test".equals(null) --> false 

(если myString != null выражения эквивалентны.)

0

существует никакой разницы, если mystring не является нулевым

I обычно следуют второму способу

if("test".equals(myString)){ } 

Причина в том, что если mystring имеет значение null, тогда 1-й путь даст мне исключение с помощью указателя на указатель.

Однако во 2-й способ является mystring приходит нуль, то и ваше приложение не остановит (из-за исключения нулевого указателя), как он возвращает ложь

Смежные вопросы