PMD 检查java代码:在条件语句中避免使用硬编码的字面量(AvoidLiteralsInIfCondition )

news2024/11/29 20:51:54

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_errorprone.html#avoidliteralsinifcondition

在条件语句中,避免避免使用硬编码的字面量。可以将字面量声明为有描述意义的静态成员或者私有成员,提升可维护性。默认忽略"-1" 和"0"。

该规则有属性ignoreMagicNumbers、ignoreExpressions:
在这里插入图片描述

例如,下面在if条件语句中使用了字面量’0’,违反了该规则:

if (stringBuffer.charAt(0) ==  '0') {
    decStr = stringBuffer.substring(1);
} else {
    decStr = stringBuffer.toString();
}

可以修改为:

  /**
   * 字符'0'.
   */
private static final char ZERO_CHAR = '0';

if (stringBuffer.charAt(0) == ZERO_CHAR) {
    decStr = stringBuffer.substring(1);
} else {
    decStr = stringBuffer.toString();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring IoC 的工作流程

概况 IOC 是什么 Bean 的声明方式 IOC 的工作流程 IOC 是什么 IOC 的全称是 Inversion Of Control, 也就是控制反转,它的核心思想是把对象的管理权限交给容器。 应用程序如果需要使用到某个对象实例,直接从 IOC 容器中去获取就行,这样设计的好…

CSP 202303-1 田地丈量

样例输入 4 10 10 0 0 5 5 5 -2 15 3 8 8 15 15 -2 10 3 15 样例输出 44 答题 首先写一个计算面积的函数,既然大小固定就省去了比较,然后是将在范围之外的矩阵给忽略掉,接下来将碰到的矩阵大小缩小为范围之内的,累加即可 #in…

剪辑App的MMKV应用优化实践

作者 | 我爱吃海米 导读 移动端开发中,IO密集问题在很多时候没有得到充足的重视和解决,贸然的把IO导致的卡顿放到异步线程,可能会导致真正的问题被掩盖,前人挖坑后人踩。其实首先要想的是,数据存储方式是否合理&#x…

阿里云服务器2核4G5M配置一年和五年价格明细表

阿里云2核4G服务器5M带宽可以选择轻量应用服务器或云服务器ECS,轻量2核4G4M带宽服务器297元一年,2核4G云服务器ECS可以选择计算型c7、c6或通用算力型u1实例等,买5年可以享受3折优惠,阿腾云分享阿里云服务器2核4G5M带宽五年费用表&…

数字城市:科技革命下的未来之城

随着科技的不断进步,数字城市已经成为了未来城市发展的关键趋势。数字城市是指利用先进的信息技术、互联网和大数据等工具,将城市各个方面进行数字化、智能化、互联化的发展模式。它不仅仅是一种技术,更是一种对城市管理、发展和居民生活方式…

基于Springcloud微服务框架 +VUE框架开发的智慧工地系统源码

建筑行业快速发展,各建筑工程的建设规模在不断扩大,各岗位工作人员的工作内容所涉及的方面也越来越广泛。随着信息技术水平不断提高,人工记录的方式已经不能够满足大项目的管理要求,就此,创造出一种新型的施工管理技术——智慧工地…

题①拷贝构造相关笔试题

问:此代码中有几次构造,几次拷贝构造? W f(W u) {W v(u);W w v;return w; } int main() {w x;w y f(x);return 0;解析:一次构造,四次拷贝构造。 再来一题 W f(W u)…

《VulnHub》Empire:Breakout

VulnHub 1:靶场信息2:打靶2.1:情报收集&威胁建模2.2:漏洞分析&渗透攻击 3:总结3.1:命令&工具3.1.1:Nmap 3.2:关键技术 VulnHub 打靶记录。官网:https://www.…

F#奇妙游(28):ADT中简单值的F#实现

简单值的ADT 在领域建模中,我们尝尝会遇到一些简单的值,比如人的名字、人的编号、物品的代码。如果过早进行程序设计,这些值很容易就会变成程序设计语言中的基本量,string、int这些,就比如人的标号和物品的编号&#…

第十五课 状语从句

文章目录 前言一、时间状语从句时间状语从句,主语谓语宾语 或者 主语谓语宾语时间状语从句时间状语从句,主语系动词表语 或者 主语系动词表语时间状语从句1、when,while,as 引导的时间状语从句when主语谓语(宾语)状语when主语系动…

混合查询多家快递,快速掌握物流信息

在现代社会,快递服务已成为我们日常生活的重要组成部分。无论是购物还是文件传递,我们都需要快递服务的帮助。然而,不同的快递公司需要不同的查询方法,这无疑增加了我们的查询难度。因此,有没有一种方法可以让我们一次…

RuntimeError: ANTLR version mismatch

规则引擎源码: nemonik/Intellect: DSL and Rules Engine For Python (github.com) 运行程序 Example.py 时报错: RuntimeError: ANTLR version mismatch: The recognizer has been generated with API V0, but this runtime does not support this. …

svn checkout 报 ‘svn: E000061: 执行上下文错误: Connection refused‘

问题 svn: E170013svn: E000061 ➜ svn svn checkout https://xxx.xxx.xxx.xxx:9443/svn/project-xxx/ svn: E170013: Unable to connect to a repository at URL https://xxx.xxx.xxx.xxx:9443/svn/project-xxx svn: E000061: 执行上下文错误: Connection refused链接在浏览…

收入下降,亏损扩大,利润率急剧恶化,蔚来仍充满风险

来源:猛兽财经 作者:猛兽财经 蔚来第二季度财报分析 猛兽财经从蔚来(NIO)2023年第二季度财报中,获得的最大收获并不是该公司的收入下降或亏损扩大,而是由于价格竞争加剧,中国电动汽车行业整体上…

5700A福禄克FLUKE 5700A多功能校准器

181/2461/8938Fluke 5700A/5720A 高精度多功能校准器 5700A: 世界级标准产品 通过不断的改进、提高,5700A已经演变为5700A系列II。这是福禄克公司生产的、经过大量测试证明、极为可靠的、高精度校准器。5700A已经在全世界的范围被看作是校准器的标准,具有…

使用python对光谱数据进行lorentz峰值拟合(bounds限定拟合参数范围)

1、lorentz峰值拟合 发光光谱是一种用于表征二维半导体材料光学性质的重要技术,它可以反映出材料中的载流子密度、缺陷态、激子束缚能等信息。 由于二维半导体材料的厚度极其薄,其发光信号往往很弱,且受到基底、环境和测量设备等因素的干扰…

1801. 积压订单中的订单总数;1567. 乘积为正数的最长子数组长度;923. 三数之和的多种可能

1801. 积压订单中的订单总数 核心思想:维护一个最小堆sell和一个最大堆buy,然后模拟即可。 1567. 乘积为正数的最长子数组长度 核心思想:动态规划,z表示以当前数字num结尾的乘积为正的最长子数组长度,f表示以当前数字num结尾的乘…

论文开题:成功之门的五大关键策略

研究生、博士生、学者或任何从事研究的人都会面临一个不可避免的环节——论文开题。这一阶段不仅定义了接下来研究的方向,还可能影响到整个项目的成功与否。那么,如何确保你的开题过程能够无瑕通过,还能打动评审人呢?本文将揭示论…

‘无法启动此程序,因为计算机中丢失dll’的多种解决方法分享,最有靠谱的修复方案

当你尝试启动某个程序时,可能会收到类似于"无法启动此程序,因为计算机中丢失DLL"的错误消息。这种错误可能会导致程序无法正常运行,给用户带来不便。在本文中,我们将详细介绍多种解决计算机中丢失DLL的方法,…

rk3568 SDK的buildroot添加package

开发源码工程 首先进入<SDK>/app 目录下&#xff0c;在该目录下创建一个名为“mypackage”的文件夹。 在 mypackage 目录下创建一个.c 源文件 main.c&#xff0c;以及一个 Makefile 文件。 大家可以自己在 main.c 源文件中编写一个简单的测试代码&#xff0c;譬如打印一…