我希望制定一个自定义Lint规则,以确保在每次引用服务器返回的JavaBean对象或其字段之前进行空检查,以避免NullPointerException。例如:
错误案例:
SomeBean bean = fetchDataFromServer();
bean.getSomeField().doSomeThing();//-->Lint should report error, missing null-check before using右案件:
if (bean != null && bean.getSomeField() != null) {
bean.getSomeField().doSomeThing();//-->Lint should check this ok, have checked for both reference
}我的问题:对于此检查,是否已经有任何已实现的规则?如果没有,有人能告诉我怎么写这样的习惯规则吗?
任何帮助都将不胜感激。
发布于 2022-02-01 22:44:06
在Java生态系统中经常使用的指针中:
NP为前缀)。SonarLint
有处理德米特定律(LoD)的声纳规则德米特定律(LoD)
空指针不应取消引用 对null的引用永远不应该被取消引用/访问。这样做将导致抛出
NullPointerException。充其量,这样的异常会导致突然的程序终止。最坏的情况是,它可能公开对攻击者有用的调试信息,或者允许攻击者绕过安全措施。
您可以为您的Java (例如,SonarLint或IntelliJ )使用免费的IntelliJ插件。要安装免费的IDE扩展,请访问官方网站:SonarLint
FindBugs
在NP类别中的其他bug描述中,例如,NP_ALWAYS_NULL:
NP:空指针取消引用(NP_ALWAYS_NULL) 这里取消了一个空指针。这将导致在执行代码时出现
NullPointerException。
另请参阅:
格子式
要编写自己的校验方式规则,请参见:
进一步阅读
https://stackoverflow.com/questions/41498719
复制相似问题