Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 定义新变量_Java_Variables - Fatal编程技术网

Java 定义新变量

Java 定义新变量,java,variables,Java,Variables,我对Java编程非常陌生,遇到了一些我不太理解的事情: if (Object.getSomething() != null) { Long Size= null != Object.getSomething().getSomething2() ? Object.Something().getSomething2() : null; 我一直在寻找答案,但我无法理解这种定义新变量的方式,我的意思是,“?”和“:null”是我无法理解的东西。这是java中的三

我对Java编程非常陌生,遇到了一些我不太理解的事情:

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

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

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

result = testCondition ? value1 : value2
i、 e如果testcondition为true,则将值1放入结果,否则将值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();

请参阅关于三元运算符。

三元条件采用以下形式:

条件?value\u if\u true:value\u if\u false

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

int max = 0;
if (a > b) {
  max = a;
} else {
  max = b;
}
我们可以使用三元条件做完全相同的事情:
max=a>b?a:b

您试图在此处使用三元运算符。以下是为大小指定值的简化版本:

长尺寸=空!=object.getSomething()?10L:空


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

让我们执行一个简单的三元操作:

Object object;
int i = object == null ? 1 : 2;
在Java代码中,这与编写标准的
if-else
语句相同

Object object;
int i;

if (object == null) {
    i = 1;
} else {
    i = 2;
}
如您所见,传统方法所需的行数要多得多。这是三元运算符的主要优点之一

在自然语言中,三元运算读作:
“object是否等于null
?然后
1
否则
2

阅读有关三元条件表达式的一些语法示例:此语句(如果
下面的所有语句都是
if
)无效,可以(或者更好地应该)用
Long Size=object.getSomething().getSomething2()