我的项目中有以下代码:
private void initCS() {
CarsMakerData cmd = NetWorkData.data[key - 1];
if (cmd.portClient != 0);
{
System.out.println(cmd.portClient);
client = new CarsMakerClient(this, cmd.ipClient, cmd.portClient);
client.start();
}
}
我得到以下输出:
770
0
0
0
我期待770
而不是0 ...
数组NetWorkData.data
在静态构造函数中初始化。 key
在函数的所有四次调用中都是唯一的。
任何人都可以解释为什么我会得到那些零吗?这可能是因为多线程吗?
(我在Linux系统上使用eclipse,使用OpenJDK 2.4.7)
答案 0 :(得分:5)
if (cmd.portClient != 0);
删除分号。
分号表示空语句。上面的行表示:“如果cmd.portClient
不为零,则不执行任何操作”。 {
和}
之后的块与if
语句无关,并且将始终执行。