话说if (null == x)

     最近看到Java项目的代码中看到这样的语句,

if (null == model)
{
     ...
}

     我问开发这段代码的同事问什么这么写,同事说是编程规范规定的。

 

     但是在Java项目中,不需要这样写,也不应该这样写。

 

     if 的判断语句倒着写,这种写法是从C\C++语言开始的,(获取其它语言更早就有了 :-) )

     在C\C++语言中,数字等于0表示false, 不等于0表示true, 下面的两个if判断代码都是合法的,但是含义却南辕北辙

// 1 赋值 + 判断
int count = -1;
if (count = read())
{
     ...
}

// 2 判断
int expectedCount = 20;
if (expectedCount == read())
{
     ...
}

  人总是会犯错误的,一个不小心,第二段代码就成了

int expectedCount = 20;
if (expectedCount = read()) // == 变成了 =
{
     ...
}

  为了防止这种低级错误,于是就有了编程规范。

int expectedCount = 20;
if (read() = expectedCount) // 直接编译错误,就避免了错误的产生
{
     ...
}

  所以在C、C++项目中有这样的编程规范是正确的。

 

但是在Java项目中,

Java 语言中布尔变量就只有true和false, 数字不能表示布尔.下面的代码编译器是直接报错的,所以就避免了低级错误的发生.

int expectedCount = 20;
if (expectedCount = read()) // 编译器直接报错
{
     ...
}

 所以在Java项目中,不需要 倒着写; 这样还会降低可读性,所以不应该 倒着写;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值