当前位置:网站首页>代码扫描工具扫出的 Arrays.asList 使用BUG

代码扫描工具扫出的 Arrays.asList 使用BUG

2022-06-22 15:23:00 夜七天

在使用代码扫描工具之后,发现了代码

obj.andIn("id", Arrays.asList(arr));

此处提示有BUG,BUG信息为:

Bug: int[] passed to varargs method java.util.Arrays.asList(Object[]) in com.vs.api.impl.VsMpExaminationPaperServiceImpl.changePublish(Integer, Integer)

This code passes a primitive array to a function that takes a variable number of object arguments. This creates an array of length one to hold the primitive array and passes it to the function.

Rank: Scary (7), confidence: High
Pattern: VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG
Type: VA, Category: CORRECTNESS (Correctness)

深入了解之后才发现:

使用 new ArrayList<>(Arrays.asList(arr))方式,Arrays.asList()的输出值会传递给ArrayList的构造器,那么会创建一个引用arr数组内元素的ArrayList,因此打乱的结果不会同步到arr数组去。如果直接使用Arrays.asList(arr)的结果,则结果会同步到arr数组。导致arr数组内元素也会被打乱。

原网站

版权声明
本文为[夜七天]所创,转载请带上原文链接,感谢
https://blog.csdn.net/q664243624/article/details/90476298