java添加空检查会引发一系列编译错误
我正在测试一个CPU使用率检查的程序,我得到了一个空指针异常,所以我添加了空检查。当我添加空检查时,我开始出现一系列错误。代码如下:
double ideltime=Double.parseDouble(cpuIdle.trim());
**String idelTimeStr=formatter.format(ideltime);
if(idelTimeStr!=null)**
double usuage=temp - Double.parseDouble(idelTimeStr);
cpuUsage = formatter.format(usuage);
突出显示的行显示添加的空检查。此空检查后的编译错误如下:
CPUUsage.java:29: error: '.class' expected
double usuage=temp - Double.parseDouble(idelTimeStr);
^
CPUUsage.java:29: error: not a statement
double usuage=temp - Double.parseDouble(idelTimeStr);
^
CPUUsage.java:29: error: illegal start of expression
double usuage=temp - Double.parseDouble(idelTimeStr);
^
CPUUsage.java:29: error: ';' expected
double usuage=temp - Double.parseDouble(idelTimeStr);
请帮助解决这个问题
# 1 楼答案
只有一条语句时,可以使用大括号:
与相同
这是由JLS Chapter 14: Blocks and Statements中的语法定义的。相关生产条款如下:
最后,
ExpressionStatement
类似于赋值或方法调用,但不是变量声明。变量声明需要一个块JLS 14.2: Blocks
和JLS 14.4: Local Variable Declaration Statements
由于您正在声明
double usuage = ...
,因此在本例中需要大括号:与不同
使用卷曲括号,你的程序是语法> EME>细,但是你需要考虑的是,{{CD3}}变量只在块内可见,所以你需要在卷曲括号内添加更多的代码(或者用{{CD5>}块之外的默认值声明和初始化^ {CD3>})。
在任何情况下,我suggest to always use braces even if there is only one statement