List<UUID> insrVrfyIds = insrVrfyObjsNew.stream().map(insrVrfy -> insrVrfy.getCustomerInsrVrfyId()).collect(Collectors.toList());
对于下面的代码,我得到了一个警告,正如我在标题中提到的。谁能告诉我怎么转换这个吗。
在上面的代码中,我有一个对象列表,我想使用lambda表达式从中提取所有主键。但我遇到了类似于“用方法引用替换此lambda。(sonar.java.source未设置。假设为8或更大)。”
List<UUID> insrVrfyIds =
insrVrfyObjsNew.stream().map(CustomerInsrVrfy::getCustomerInsrVrfyId).collect(Collectors.toList());
这适用于上述情况。。这是我的错,它通过将变量(insrVrfy)替换为其类名(CustomerInsrVrfy)来工作。
这可能意味着你也可以这样写:
List<UUID> insrVrfyIds = insrVrfyObjsNew.stream().map(InsrVrfy::getCustomerInsrVrfyId).collect(Collectors.toList());
我假设您的实例insrVrfy属于InsrVrfy类,因此如果我弄错了,请纠正我。
在这里,您可以阅读有关方法引用的更多信息。
我收到了上述代码的声纳问题,请用方法引用替换此lambda。(未设置sonar.java.source。假设为8或更大。) 怎么修
我有一个包含错误列表的集合。我想通过一个键(UUID UserId)对它们进行分组。为此,我从以下答案中复制了代码:https://stackoverflow.com/a/30202075/4045364 Sonar Lint告诉我以下错误: 用方法引用替换此lambda<代码>- 我所尝试的: 基于这些问题:SONAR:用方法引用替换此lambda,可运行接口:用方法引用替换此lambda。(未
当我在sonar中检查时,结果是: 它实际上指的是: 我的代码如下所示: 我试图改变它,但我得到了一个错误。有人知道如何改变它吗?
索纳尔曲贝的解释是: 方法/构造函数引用比使用lambdas更紧凑、更易读,因此是首选。
我编写了代码,从包含日期变量的对象列表中查找最新日期。 <代码>列表。流()。地图(段- 但我发现声纳问题 将此lambda替换为方法引用“Objects::nonNull”。 我无法弄清楚的是,我可以在哪里使用声纳lint问题所述的方法参考。
问题内容: 此代码示例 违反了声纳法规则: 尽可能用方法引用替换lambda 是声纳虫吗?还是我真的可以使用方法参考? 问题答案: 您不能在不更改语义的情况下用方法引用替换lambda 。 方法引用替换 单个 方法调用,因此它不能简单地替换包含多个方法调用的lambda表达式。 形式的lambda表达式可以被替换为,当且仅当的评估时间无关紧要,因为在lambda形式中,在每个lambda主体评估中