在用PMD检测代码时发现报错如下:

Avoid reassigning parameters such as ‘col’. Reassigning values to incoming parameters is not recommended. Use temporary local variables instead.

报错的代码如下:

    private BaseColumn renderDefectColumn(final BaseColumn col, final Boolean isDefectShown, final Boolean isMeasDefectItems) {if (!isDefectShown) {col = new BaseColumn();col.setReadonly(true);}if (isMeasDefectItems) {col.setReadonly(true);}return col;}

在stackoverflow里找到个一样的问题,有个回答是这样的:

In your case, there’s a parameter named bankRequest. Inside the method, you are assigning bankRequest a value.

By some, it is considered an ill approach to assign values to parameters within a method’s body, as it is, at times, confusing. Some developers prefer always assuming that a parameter is never assigned any value during a method’s run.

To avoid that, you can declare an alternative variable of type BankDTO

因为我在方法体内部把方法的参数重新赋值,于是PMD就报出这个错误。解决方法就是避免在方法体内对方法参数重新赋值,可以将方法参数的值赋给另一个局部变量,如下:

    private BaseColumn renderDefectColumn(final BaseColumn col, final Boolean isDefectShown, final Boolean isMeasDefectItems) {BaseColumn column = col;if (!isDefectShown) {column = new BaseColumn();column.setReadonly(true);}if (isMeasDefectItems) {column.setReadonly(true);}return column;}

PMD笔记-Avoid reassigning parameters such as 'XXX'相关推荐

  1. 【学习笔记】Unity3d C# 常用标签[xxx]

    [学习笔记]Unity3d C# 常用标签[xxx] 介绍 类 字段 方法 介绍 在使用Unity3d引擎去开发的时候,不可避免的要使用到专属的开发语言C#,而Unity3d开发引擎给我们提拱了很多的 ...

  2. PMD笔记-Overridable method 'XXX' called during object construction

    PMD错误 Overridable method 'XXX' called during object construction 样例 public class Test {public int a; ...

  3. Machine Learning课堂笔记之Computing Parameters Analytically

    转载于:https://www.cnblogs.com/silverbulletcy/p/7977615.html

  4. 【Jmeter】参数Parameters和Body Data

    在做接口并发测试的时候,才发现Jmeter中的Parameters和Body Data两种参数格式并不是简单的一个是xx=xx,另外一个是json格式的参数 先看一个接口 [post] /api/xx ...

  5. 【学习生涯】预科学习笔记

    预科第一天 第一天主要是一些基础安排和文件下载 必备软件 Microsoft Visual Studio 2022:编程必备 有道词典:英语菜鸡必备 向日葵远程工具:找大佬帮助必备 7zip:解压工具 ...

  6. SQL 笔记 By 华仔

    -------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...

  7. Libsvm的一些说明帮助吧

    欢迎关注我的博客晨凫追风,转载请注明出处http://blog.csdn.net/hit2015spring hit2015spring晨凫追风\frac{hit2015spring}{晨凫追风} 这 ...

  8. Linux开机启动过程(6):页表的初始化、避开保留的内存、地址随机化

    内核引导过程. Part 6. 简介 这是内核引导过程系列文章的第六部分.在前一部分,我们已经看到了内核引导过程的结尾,但是我们跳过了一些高级部分. 你可能还记得,Linux内核的入口点是 main. ...

  9. TSLint 配置规则

    TSLint core rules 原文:https://palantir.github.io/tslint/rules/ Lint rules encode logic for syntactic ...

最新文章

  1. SCI论文写作视频1.论文的三段式结构
  2. C语言再学习 -- 常用头文件和函数(转)
  3. Linux head和tail指令
  4. vue可视化拖拽生成工具_vdesjs: 基于vue的可视化拖拽,代码生成工具。提升前端开发效率,或者集成至项目作为在线拖拽工具。(持续迭代升级中)...
  5. python统计字符出现的次数最多的字符_Python统计字符串中出现次数最多的人名
  6. munin安装---已成功安装
  7. JQuery 样式设置、追加、移除与切换
  8. 类型转换和操作符重载 (c#)
  9. 智能硬件(2)---手机访问智能硬件的三种模式
  10. java参数传递时,究竟传递的是什么
  11. utilities(matlab)—— 图像分块(image2cols、cols2image)
  12. Week 2 代码审查
  13. (转)AI泡沫已现:资金多而项目缺,周期长而营收难
  14. 格雷码与二进制码之间的相互转换
  15. python共有前缀_最长公共前缀-Python
  16. 关于JAVAFX的鼠标单击事件案例
  17. 解决使用百度地图API时偏移问题并自适应中心点和比例
  18. 总体和个体,样本和样本值
  19. 5.15 英语单词小记
  20. STM32F103+W5500,HAL库

热门文章

  1. linux - apollo系统
  2. Linux冷门却很重要的命令(八)---xargs
  3. 华为openEuler系统 设置yum源
  4. 马云成功的九大秘籍与经典语录[收藏]
  5. 洛谷——P2949工作调度Work Scheduling
  6. ML - 线性回归的评估(MSE、RMSE、MAE、R Square)
  7. Flutter中TextField hintText不居中问题
  8. ajax enctype设置,form设置enctype属性为'application/json'不起作用
  9. 兰博基尼口罩,特斯拉呼吸机,这些国外企业为何能快速转产抗疫物资?
  10. SQL Server 2008 附加数据库时出错