最近看到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的比较而犯愁呢?
= null and user_name != ''">`条件判断虽常见,却也暴露了其平台局限性和适用场景的不足。本资源旨在深入探讨如何运用CASE WHEN语法巧妙绕过这些限制,实现更广泛平台兼容性与代码普适性的优雅升级。 1. 破除平台...
至于为什么null == 0是false,规范的第3条规则明确表示,如果类型(x)是Null,则返回true,除非y是undefined。由于0既不是undefined也不是null,因此结果为false。 最后,null === 0中的全等比较不会进行任何类型...
<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 !=...
貌似以前也看过null==undefined,null!==undefined,但也一直没有在意。 近日看过去别人的一程序源码,到处都有一些如if(x!=undefined&&x!=null&&x!=””)之类的判断,突然觉得写的很啰嗦,俺一般都直接if(x){}因为...
我呢,今天闲来没啥事,研究了一下有关“null”和“0”的关系。希望大家看完了能有所收获。 代码如下: alert(null>=0) 代码如下: 上面的代码会弹出什么来呢?False?True?其实是true。那么是为什么呢?为什么”...
总结一下,`whatif`是Kotlin的一个扩展,主要用于简化if-else语句,尤其在处理null安全和布尔条件时。它利用高阶函数和lambda表达式,让代码更加紧凑且易于理解。作为一个开源项目,`WhatIf`为Kotlin社区提供了宝贵...
不是程序写错了,是程序员为了防止将 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...
if (value == null) { System.out.println("value is null"); } else if ("".equals(value)) { System.out.println("value is blank but not null"); } else { System.out.println("value is \"" + value + "\...
if (NULL == bf->fp) return NULL; bf->mask = 0x80; bf->rack = 0; return bf; } BITFILE *OpenBitFileOutput(char *filename) { BITFILE *bf; bf = (BITFILE *)malloc(sizeof(BITFILE)); if (NULL == bf) ...
if (typeof x == "undefined") { alert("x is undefined"); } ``` null null 是一种特殊的 object 类型,表示一个对象的不存在或空值。例如,变量 a 被赋值为 null 时,typeof a 将返回 "object"。null 和 ...
3. 修改这个条件语句,使其不直接赋值为`nil`,而是赋值为字符串`"null"`,例如:`if json == "null" then value = "null" end`。 4. 编译并链接修改后的lua-cjson库,然后在你的项目中使用这个定制版的库。 请注意...
//if(text==null||text==''){ //不为空和输入的不是空格 if(text==null||text.replace(/^\s+,""/).replace(/^\s+$/,"")==''){ alert('用户名不能为空!'); //重新获得焦点 document....
if (is_null($array)) { echo "数组是NULL"; } else { echo "数组不是NULL"; } ``` 2. 使用`empty()`函数 `empty()`函数可以检测变量是否为空。当数组未被定义或者其值等价于FALSE(包括NULL)时,`empty()`返回...
代码如下: 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_...
在SQL Server中,ISNULL和NULLIF是两个非常重要的函数,它们主要用于处理NULL值,确保数据的完整性和一致性。在数据库操作中,NULL值经常会出现,尤其是在进行比较、计算或者查询时,理解并正确使用这两个函数是提升...
if (NULL == pHashTbl || NULL == pHashTbl->value[data % 10]) return FALSE; if (NULL == (pNode = find_data_in_hash(pHashTbl, data))) return FALSE; if (pNode == pHashTbl->value[data % 10]) { ...
if (a == null || "".equals(a) || "null".equals(a) || "NULL".equals(a)) { return true; } else { return false; } } public static boolean isNull(Integer a) { if (a == null) { return true; } ...