我在Java编程方面很陌生,我遇到了一些我不太懂的东西:
if (Object.getSomething() != null) {
Long Size= null != Object.getSomething().getSomething2()
? Object.Something().getSomething2() : null;
我一直在寻找答案,但我无法理解这种定义新变量的方式,我的意思是'?'并且':null'是我无法理解的东西。
答案 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。