创建一个数组来存储Java中的泛型类型

创建一个数组来存储Java中的泛型类型,第1张

创建一个数组来存储Java中的泛型类型

问题1:

基本上,这是Java语言禁止的。Java语言规范中的泛型部分对此进行了介绍。

使用时

ArrayList<Integer>[] pl2 = new ArrayList[10];    // warning

您会收到编译器警告,因为以下示例将进行编译(为每行代码生成警告):

ArrayList wrongRawArrayList = new ArrayList();      // warningwrongRawArrayList.add("string1");        // warning wrongRawArrayList.add("string2");        // warningpl2[0] = wrongRawArrayList;   // warning

但是现在您本应包含

ArrayList
的数组
Integer
完全包含错误
ArrayList
String
对象。

问题2:

正如已经回答的那样,声明of

p12
为您提供了编译时检查,并在从中获取项目时使您不必使用强制转换
ArrayList

稍微修改了前面的示例:

ArrayList<Integer>[] pl2 = new ArrayList[10];     // warningArrayList<String> wrongArrayList = new ArrayList<String>();  // OK!wrongArrayList.add("string1");         // OK! wrongArrayList.add("string2");         // OK!pl2[0] = wrongArrayList;    // ERROR

现在,由于您使用的是泛型,因此无法编译。但是如果你用

ArrayList[] pl2 = new ArrayList[10];

您将获得与第一个示例相同的结果。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5488063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存