gpt4 book ai didi

java - 声明泛型类型时的编译器警告

转载 作者:搜寻专家 更新时间:2023-11-01 03:11:41 24 4
gpt4 key购买 nike

为什么编译器在声明变量时发出警告

 List<? extends Object> list = new LinkedList();

警告:

Note: ZiggyTest.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

但是当我将变量声明为

时它不会发出警告
List<?> list = new LinkedList();

最佳答案

如果您使用没有类型说明符的集合(例如 Arraylist() 而不是 ArrayList<String>() ),这会出现在 Java 5 及更高版本中。这意味着编译器无法使用 generics 检查您是否以类型安全的方式使用集合。 .

要消除警告,只需具体说明您在集合中存储的对象类型。所以,而不是

List list = new ArrayList();

应该是

List<String> list = new ArrayList<String>();

在您的情况下,如果您按如下方式修改该语句,

List<? extends Object> list = new LinkedList<Object>();

它会在没有警告的情况下编译,因为我们现在使用通用类型 ( <Object> ) 使其类型安全。

关于java - 声明泛型类型时的编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695734/

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