java - 应使用 lambda 删除未使用的方法参数 (squid:S1172) 误报
问题描述
我有一个使用参数作为 lambda 表达式的工作方法
private BiConsumer<List<String>, Properties> handleList(Properties p) {
return (list, prop) -> executeSubList(list, prop);
}
因为p
我收到了来自 SonarLint 的误报警告
Unused method parameters should be removed (squid:S1172)
如果我更改prop
为p
我收到编译错误
Lambda 表达式的参数 p 不能重新声明在封闭范围内定义的另一个局部变量
将方法参数用作 lambda 参数时是否存在真正的问题或误报检查?
解决方案
这个问题是真实的。此方法返回在一对 or和参数上BiConsumer
运行的 a ,但不管. 您可以将其删除:executeSubList
List<String>
Properties
p
private BiConsumer<List<String>, Properties> handleList() {
// p was never used, and can just be removed -------^
return (list, prop) -> executeSubList(list, prop);
}
推荐阅读
- python - 有没有办法使用 combination() 返回 [i]+[j] 大小排列的列表?
- postgresql - PostgreSQL 目录没有出现在数据库所说的位置
- flutter - 如何在 Flutter 中从 GoogleSignIn 获取额外的范围?
- python - 训练自定义模型
- html - 为什么我的代码在移动视图中没有覆盖整个屏幕它只覆盖了一半的屏幕
- excel - Excel:获取保存在文件中的易失性函数的当前值
- c++ - 通用初始化的工作导致析构函数被额外调用一次
- python - Python 正则表达式:仅当单词前面有空格和逗号或单词是起始词时
- kotlin - 混合值的枚举(常量和数据类)
- java - 如何正确评估 Velocity 上下文?