Каким синтаксисом 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 является чистым кодом.

Ответ 4

Это сокращение для

Boolean foo;
if(request.getParameter("foo")==null)
{
 foo = false;
}
else { foo = true; }

Ответ 5

Все это может быть просто

Boolean foo = (request.getParameter("foo") != null);