我期待通過代碼,不知道這意味着什麼:什麼樣的Java語法是「== null?false:true;」
Boolean foo = request.getParameter("foo") == null? false:true;
這得是什麼,它把來自的getParameter返回的字符串()爲布爾。
但我從來沒有見過這種帶有questionmark和冒號的Java(除了在foreach循環中)。 任何hel感激!
我期待通過代碼,不知道這意味着什麼:什麼樣的Java語法是「== null?false:true;」
Boolean foo = request.getParameter("foo") == null? false:true;
這得是什麼,它把來自的getParameter返回的字符串()爲布爾。
但我從來沒有見過這種帶有questionmark和冒號的Java(除了在foreach循環中)。 任何hel感激!
速記這是三元運算符。代碼段:
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)
這是三元運算符:
(condition) ? if-true : if-false
整個事情可能已經被寫爲:
Boolean foo = request.getParameter("foo") != null;
哪個IMO是乾淨的代碼。
+1指出在這種情況下,它被不必要地使用。 – Jesper 2010-08-04 07:56:02
爲什麼每個人都在編輯他們的答案? – NullUserException 2010-08-04 07:59:32
+1用於指出這一點。通常不是最好使用三元運算符來返回布爾值。 – kiamlaluno 2010-08-04 08:06:46
這是
Boolean foo;
if(request.getParameter("foo")==null)
{
foo = false;
}
else { foo = true; }
並以最明智的方式寫出來; -) – EJP 2010-08-04 09:02:42
該?:
是一個if
你可以有裏面的一個表達式。
Java教程這裏所描述的那樣:http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
(去ConditionalDemo2)
整個事情可能只是
Boolean foo = (request.getParameter("foo") != null);
有時我討厭這樣的語句沒有適當的支架。應該更像這樣可讀:'Boolean foo =(request.getParameter(「foo」)== null)?假:真;' – mauris 2010-08-04 07:56:45
請注意,如果請求參數是foo = false,那麼foo變量將被設置爲「true」。 – 2010-08-04 07:56:52