gpt4 book ai didi

Java 泛型初学者 - 关于类型安全声明和实例化的编译器警告

转载 作者:行者123 更新时间:2023-12-02 19:43:53 24 4
gpt4 key购买 nike

如果我声明并实例化如下所示的新类型安全集合,编译器会抛出警告

List<String> list = new ArrayList(); // compiler warning
List<String> anotherList = new ArrayList<String>(); //this is normal and ok.

列表对象似乎是类型安全的,因为我不能在其中放入除 String 之外的任何其他对象。那么,使用这样的声明有什么陷阱吗?

最佳答案

因为你可以做这样的事情:

ArrayList foo = new ArrayList();
foo.add(new Integer(5));
List<String> list = foo; // compiler warning

但这会破坏 List<String> 的契约(Contract)应该只包含String s。这就是你收到警告的原因;一般来说,混合原始类型和泛型类型是不好的做法。

关于Java 泛型初学者 - 关于类型安全声明和实例化的编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290766/

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