簡體   English   中英

定義新變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM