定义新变量

时间:2017-11-21 08:25:18

标签: java variables

我在Java编程方面很陌生,我遇到了一些我不太懂的东西:

if (Object.getSomething() != null) {
        Long Size= null != Object.getSomething().getSomething2()
            ? Object.Something().getSomething2() : null;

我一直在寻找答案,但我无法理解这种定义新变量的方式,我的意思是'?'并且':null'是我无法理解的东西。

5 个答案:

答案 0 :(得分:4)

三元条件采用以下形式:

condition ? value_if_true : value_if_false

例如考虑数学max函数。使用常规条件语句我们可以写:

int max = 0;
if (a > b) {
  max = a;
} else {
  max = b;
}

我们可以使用三元条件做同样的事情: max = a > b ? a: b;

答案 1 :(得分:2)

这是java中的三元运算符。 语法是

result = testCondition ? value1 : value2

即如果testcondition为true,则将value1放在result中,否则将value2放在result中。

答案 2 :(得分:2)

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();

请参阅this关于三元运算符。

答案 3 :(得分:2)

让我们进行简单的三元操作:

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?然后是1,否则2"。

答案 4 :(得分:1)

您正在尝试使用三元运算符。以下是将值分配给Size:

的简化版本

Long Size = null!= object.getSomething()? 10L:null;

如果为null!= object.getSomething()为true,则将分配10L,否则将分配null。