最近看到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项目中,不需要 倒着写; 这样还会降低可读性,所以不应该 倒着写;