[英]Defining new variable
我是Java的編程新手,我遇到了一些我不太懂的東西:
if (Object.getSomething() != null) {
Long Size= null != Object.getSomething().getSomething2()
? Object.Something().getSomething2() : null;
我一直在尋找答案,但我無法理解這種定義新變量的方式,我的意思是'?' ':null'是我無法理解的東西。
三元條件采用以下形式:
condition ? value_if_true : value_if_false
考慮例如數學max
函數。 使用常規條件語句我們可以寫:
int max = 0;
if (a > b) {
max = a;
} else {
max = b;
}
我們可以使用三元條件做同樣的事情: max = a > b ? a: b;
max = a > b ? a: b;
這是java中的三元運算符。 語法是
result = testCondition ? value1 : value2
即如果testcondition為true,則將value1放入result中,否則將value2放入result中。
if (Object.getSomething() != null)
Long Size= null != Object.getSomething().getSomething2()
? Object.Something().getSomething2() : null;
該行等同於以下內容:
if (Object.getSomething() != null)
Long Size = null;
if (null != Object.getSomething().getSomething2())
Size = Object.Something().getSomething2();
見這對三元運算符。
我們來看一個簡單的三元運算:
Object object;
int i = object == null ? 1 : 2;
在Java代碼中,它與編寫標准的if-else
語句相同
Object object;
int i;
if (object == null) {
i = 1;
} else {
i = 2;
}
如您所見,傳統方法所需的線條數量更多。 這是三元運算符的主要優勢之一。
在自然語言中,三元操作讀作:“ object equals to null
是否object equals to null
?然后1
則為2
”。
您正在嘗試使用三元運算符。 這是將值賦給Size的簡化版本:
Long Size = null!= object.getSomething()? 10L:null;
如果為null!= object.getSomething()為true,則將分配10L,否則將分配null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.