[FindBugs分析记录]Redundant nullcheck of o,which is known to be non-null
官网解释:
This method contains a redundant check of a known non-null value against the constant null.
这种方法包含了一个称为非空对空值的不断重复检查。
什么代码会引起这个问题呢?先看下面:
public static boolean isNull(Object o) {
if (null == o)
return null == o;
if (o instanceof String) {
return StringUtils.isBlank((String) o);
}
return o == null;
}
倒数第二行代码:return o == null;执行到这一步的时候已经表明o不为空,现在就是拿一个已知非空的值和null进行比较,findbus认为这是种运行期存在安全隐患的代码。
这里的建议是:防止这种情况出现,直接返回false.
public static boolean isNull(Object o) {
if (null == o)
return null == o;
if (o instanceof String) {
return StringUtils.isBlank((String) o);
}
return false;
}
[FindBugs分析记录]Redundant nullcheck of o,which is known to be non-null的更多相关文章
- [FindBugs分析记录]Class defines clone() but doesn't implement Cloneable
官网解释: This class defines a clone() method but the class doesn't implement Cloneable. There are some ...
- [FindBugs分析记录]Potentially dangerous use of non-short-circuit logic
官网解释: This code seems to be using non-short-circuit logic (e.g., & or |) rather than short-circu ...
- Fine报表权限流程分析记录
Fine报表权限流程分析记录 URL访问三种类型的报表:第一个:BI报表 例如: http://192.25.103.250:37799/WebReport/ReportServer?op=fr_bi ...
- PostgreSQL的基础数据类型分析记录-转
src:http://www.codeweblog.com/postgresql%E7%9A%84%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E ...
- 获取登录验证码失败及前后端不同域导致session丢失问题分析记录
前言 前两周在把兄弟公司的几个服务部署到我们公司测试环境服务器的时候又遇到了不少问题,因为是前后端分离的项目,所以这次也同样遇到了跨域问题,解决方式也跟上一回的不一样,这里就再来分析记录一下. 登录验 ...
- sizzle分析记录:关于querySelectorAll兼容问题
querySelector和querySelectorAll是W3C提供的新的查询接口 目前几乎主流浏览器均支持了他们.包括 IE8(含) 以上版本. Firefox. Chrome.Safari.O ...
- Java GC分析记录
Java GC记录 近来.项目没有特别忙碌的时候,抽空看了下生产环境的项目运行状况,我们的项目一直运行速度不是很快,偶尔会出现卡顿的现象,这点给人的体验感觉也就不那么好了.先抛个测试环境截图(生产环境 ...
- Eureka 分析记录
本文是一些记录和想方法,分析大部分来自 http://www.iocoder.cn/Eureka/ 感兴趣的可以去看一下.
- linux日志朔源分析记录
lastlog 记录用户最后一次登录情况 只有root最近登录过 lastlog -u 用户名或者uid uid 直接在passwd文件中的低三位可以看到 lastb 记录用户用户登录失败的用户记录, ...
随机推荐
- page-object使用(2)---elements
elements就是html元素下所有的标签.用page-object你可以找到并定位html页面下绝大多数的元素,这个文章列出了可定位的这些元素,生成的方法,和依据什么关键字来找到这些元素. BUT ...
- Android手机应用程序开发环境配置(Eclipse+Java+ADT)
参考: Java手机游戏开发实例简明教程 http://dev.10086.cn/blog/?uid-82940-action-viewspace-itemid-1772 Eclipse下载: htt ...
- 逆转字符串leetcode
public class Solution { public String reverseWords(String s) { String ans=reverse(s); String s2[]=an ...
- leetcode 最大矩形和
1.枚举法(超时) public class Solution { public int largestRectangleArea(int[] height) { int max=-1; for(in ...
- 常用google产品
常用google产品 01.谷歌阅读器(Google Reader):网页版RSS阅读器,方便订阅,组织和分享新闻.有手机版. 02.谷歌相册服务(Google Picasa):提供照片的下载和编 ...
- 《A First Course in Probability》-chape4-离散型随机变量-方差
为了描述一组数据的均值,我们引入了数学期望的概念,为了描述一组数据相对均值的波动情况,我们引入了方差. 能够看到,方差的本质也是一个期望,那么我们就能够利用期望的定义将其继续展开. 方差的一条重要性质 ...
- 安装rabbitmq集群
一.安装 erlang.rabbitmq 在10.0.0.45.10.0.0.57.10.0.0.58三个节点上安装,然后开启 RabbitMQ 监控插件 以下在root用户操作 1./etc/hos ...
- 不同车型 不同起步价不同费用的问题(switch语句)
#include "stdio.h" #include "math.h" main() { int a; float meet,b; printf(" ...
- UML 的基本组成
UML 是由UML构造块.规则.通用机制三部分组成的.而UML构造块由建模元素(事物).关系和图组成. 建模元素 建模元素是对模型中最具有代表性的成分的抽象.一般情况下,将建模元素分为结构元素.行为元 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载四(使用程序载入事件)
在了解了PhoneGap中都有哪些事件之后,本节将開始对这些事件的使用方法进行具体地介绍.本节要介绍的是程序载入事件,也就是deviceready.pause和resume这3个事件. [范例4-2 ...