论坛首页 Java企业应用论坛

残酷的非空if判断

浏览 17448 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-05-17   最后修改:2011-05-17
经常我们在开发过程中会出现很多if(xx==null)等这样的判断,而且基本上会占据大量的这样非空的这样的判断,对于编码来说很反感,但是在代码中如果不进行这样的判断又会造成程序的bug,  大家有什么好的想法能解决这个问题,大家平时的编码习惯是怎么样的 一起讨论
   发表时间:2011-05-17  
你要觉得不爽 专门 封装 一个 方法好 了

数据有效性判断是 必须的 

就跟 非运行异常 需要处理一样
0 请登录后投票
   发表时间:2011-05-17  
一个东西叫design by contact
0 请登录后投票
   发表时间:2011-05-17  
NullObject 对于有出空可能的
对于不应该出空的地方加断言
0 请登录后投票
   发表时间:2011-05-17  
语言缺陷,基本无解。

某些情况可以用 @NotNull 和 @Nullable 使代码清晰些 ⋯⋯ 但是不会有太大帮助。
guava 的 Strings.isNullOrEmpty() 也有些用。

如果用 groovy,很多情况就能用 .? 运算符简化,读和写都舒服很多。
如果用 scala,用 option 传参数可以强制实现的人做空判断,可以减少一些疏忽或者偷懒造成的问题⋯⋯
最完美的解决方法就是用一种没有 null / nil 值的语言,如 haskell,不过那些靠写 if(null != xx) 吃饭的人肯定不同意⋯⋯
5 请登录后投票
   发表时间:2011-05-17  
http://en.wikipedia.org/wiki/Null_Object_pattern
0 请登录后投票
   发表时间:2011-05-17  
如果php
if (!$xx) {
  .....
}
0 请登录后投票
   发表时间:2011-05-17  
chenchuan 写道
经常我们在开发过程中会出现很多if(xx==null)等这样的判断,而且基本上会占据大量的这样非空的这样的判断,对于编码来说很反感,但是在代码中如果不进行这样的判断又会造成程序的bug,  大家有什么好的想法能解决这个问题,大家平时的编码习惯是怎么样的 一起讨论



if(null==xx)  {
}


//建议常量前置

if(null!=name && name.equals("ITEYE")) {
}


有时可能少写了判断

if("ITEYE".equals(name)) {
}

0 请登录后投票
   发表时间:2011-05-17  
纠正两个笔误
ray_linn 写道
一个东西叫design by contact

contact应为contract

night_stalker 写道
...
如果用 groovy,很多情况就能用 .? 运算符简化,读和写都舒服很多。
...

.?应为?.
0 请登录后投票
   发表时间:2011-05-17  
还是js的写法轻松点
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics