ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized
时间: 2024-02-13 21:05:22 浏览: 181
这个警告是Java编译器提供的警告,用于提示您当使用未经过泛型限定的集合类时,可能会导致类型安全问题。通常情况下,我们应该使用泛型来限定集合中元素的类型,以确保代码的类型安全性和可读性。
要解决这个警告,您需要对ArrayList进行泛型限定。以下是一个示例代码:
```
import java.util.ArrayList;
import java.util.Arrays;
public class ArrayListToIntArray {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5));
int[] intArray = arrayList.stream().mapToInt(Integer::intValue).toArray();
System.out.println("ArrayList:" + arrayList);
System.out.println("int[]:" + Arrays.toString(intArray));
}
}
```
在上面的代码中,我们对ArrayList进行泛型限定,限定了其元素的类型为Integer。这样就可以避免出现“ArrayList is a raw type”的警告了。如果您使用的是Java 7或以上版本,可以使用菱形语法来简化代码:
```
ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
```
这样就可以省略掉泛型类型参数Integer了。
阅读全文