最近看到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项目中,不需要 倒着写; 这样还会降低可读性,所以不应该 倒着写;
相关推荐
你是否也为在Oracle里如何实现NULL的比较而犯愁呢?
<if test="id != null"> id, </if> <if test="name != null"> name, </if> <if test="seq != null"> seq, </if> <if test="description != null"> description, </if> <if test="status !=...
主要介绍了在javascript中,null>=0 为真,null==0却为假,null的值详解的相关资料,需要的朋友可以参考下
貌似以前也看过null==undefined,null!==undefined,但也一直没有在意。 近日看过去别人的一程序源码,到处都有一些如if(x!=undefined&&x!=null&&x!=””)之类的判断,突然觉得写的很啰嗦,俺一般都直接if(x){}因为...
<s:if test="#actorRef=='' or #actorRef==null">共享任务( href="${pageContext.request.contextPath}/ga/changeTaskAssigment.action?taskInstanceId=<s:property value="id"/>" >我来处理)</s:if> <s:elseif ...
我呢,今天闲来没啥事,研究了一下有关“null”和“0”的关系。希望大家看完了能有所收获。 代码如下: alert(null>=0) 代码如下: 上面的代码会弹出什么来呢?False?True?其实是true。那么是为什么呢?为什么”...
1.模型类中设置:null=True,表示数据库创建时该字段可不填,用NULL填充. MySQL: Null这一列,如果值为YES表示:创建一条新记录时,该字段可不填,数据库会用默认值NULL填充.django模型类中声明null=True即可. desc = ...
主要介绍了还在用if(obj!=null)做非空判断,带你快速上手Optional,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
不是程序写错了,是程序员为了防止将 if (p == NULL) 误写成 if (p = NULL),而有意把p和NULL颠倒。编译器认为 if (p = NULL) 是合法的,但是会指出 if (NULL = p)是错误的,因为NULL不能被赋值。 程序中有时会遇到...
if (NULL != pCmd_Map) { char szBuf[255] = ""; const CMD_MAP *pTemp = NULL; while (true) { cout<<pAppName<<">:"; cin>>szBuf; pTemp = pCmd_Map; if (StrCmp(szBuf, "Exit")) { break; } for...
whatif是用于表示单个if-else语句的kotlin扩展,可以为null,也可以为布尔值。
if((node->lchild==NULL)&&(node->rchild==NULL)) return(1); else return(0); } /* function PrintLeafNode()功能:输出给定二叉树的叶子节点 */ void PrintLeafNode(BTree *header) { BTree * stack[MAX_NODE];/...
if(consumerhead==NULL) return; consumertail=consumerhead; consumerhead->processlink=NULL; consumerhead->flag=4; consumerhead->numlabel=processnum; consumerhead->state='w'; consumerhead->...
1663934988460_ErrorInfo(from=0, recognizeType=0, action=110, code=0, msg=null, autoUpload=true, ext=null).pcm
//if(text==null||text==''){ //不为空和输入的不是空格 if(text==null||text.replace(/^\s+,""/).replace(/^\s+$/,"")==''){ alert('用户名不能为空!'); //重新获得焦点 document....
if(typeof url == "undefined"|| null == url) { url = [removed].href; } var regex = /^\w+\:\/\/([^\/]*).*/; var match = url.match(regex); if(typeof match != "undefined" && null != match) { host =...
代码如下: function dealNull(obj){ for(var i in obj){ if(null == obj[i] || ‘null’ == obj[i]){ obj[i]=”; }else if(‘object’ == typeof obj[i]){ dealNull(obj[i]); } } }; // 测试的对象 var a={}; a.aa=...
if (NULL == lhShareMemory) { if (ERROR_ALREADY_EXISTS == GetLastError()) { //cout !"; } else { //cout !"; } return; } lpBuffer = (char*)MapViewOfFile(lhShareMemory, FILE_...