gpt4 book ai didi

java - 捕获原始集合类型的 Sonar 规则

转载 作者:行者123 更新时间:2023-11-30 11:31:56 25 4
gpt4 key购买 nike

我最近将 Sonar 引入到一个大型遗留项目中,该项目最初是用 java 1.3 编写的。

我们一直在逐步将使用原始集合等的代码迁移到使用泛型。跟踪我们在 Sonar 方面的进展会很好,但似乎没有开箱即用的规则来捕获原始集合的使用。

是否有现有的解决方案,或者我是否需要在 pmd/checkstyle 中创建自定义规则?

最佳答案

我一直在寻找同样的东西,因为我希望我们的 Sonar 也能捕捉到这个:

List myList = new ArrayList();

Dennis S 提到的规则不适用,因为它旨在捕捉以下情况(根据 http://coding.tocea.com/java/gc_unchecked_type_in_generic_call/ )

StringBuilder myText = new StringBuilder();
...
List<String> myList = new ArrayList<String>();
boolean containsMyText = myList.contains(someText);

代码可以编译,因为 collection.contains() 方法采用 Object 参数,即使对于类型化集合也是如此。但这是一个无关紧要的检查,并且总是返回 false,因为 myText 对象的类型错误,永远无法添加到类型化的 myList 集合中。

据我所见,您似乎必须构建自定义规则。

关于java - 捕获原始集合类型的 Sonar 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com