Каким синтаксисом Java является "== null? False: true;"
Я просматриваю код и задаюсь вопросом, что это значит:
Boolean foo = request.getParameter("foo") == null? false:true;
Это должно быть то, что преобразует возвращаемую строку из getParameter() в логическое.
Но я никогда не видел такого рода Java с вопросительным знаком и двоеточием (кроме цикла foreach).
Любой герой оценил!
Ответы
Ответ 1
Это тернарный оператор. Фрагмент:
Boolean foo = request.getParameter("foo") == null? false:true;
эквивалентно:
Boolean foo;
if (request.getParameter("foo") == null)
foo = false;
else
foo = true;
или (оптимизировано):
Boolean foo = request.getParameter("foo") != null;
Основная форма оператора имеет вид:
(condition) ? (value if condition true) : (value if condition false)
Ответ 2
Чтобы тернарный оператор:
(condition) ? if-true : if-false
Все это могло бы быть написано как:
Boolean foo = request.getParameter("foo") != null;
Какой IMO является чистым кодом.
Ответ 3
?:
- это if
, который вы можете иметь внутри выражения.
Учебник по Java описывает это здесь: http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
(перейдите в ConditionalDemo2)
Ответ 4
Это сокращение для
Boolean foo;
if(request.getParameter("foo")==null)
{
foo = false;
}
else { foo = true; }
Ответ 5
Все это может быть просто
Boolean foo = (request.getParameter("foo") != null);