首页 / JAVA / java – 带集合的泛型
java – 带集合的泛型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 带集合的泛型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1427字,纯文字阅读大概需要3分钟。
内容图文
![java – 带集合的泛型](/upload/InfoBanner/zyjiaocheng/723/11d56df5f208455ebb332b3861fb4e92.jpg)
问题1:
鉴于:
List<Object> lo = new ArrayList<Object>();
如果我理解正确,ArrayList<>()中的参数必须是Object,那么我们需要编写它吗?或者我们只是跳过它:
List<Object> lo = new ArrayList<>();
问题2:
鉴于:
List<? extends Animal> myArray = new ArrayList<Dog>();
据我所知,=的左侧表示myArray是List类型的引用,可以是List< Cat>或列表< Dog>,…. = =右侧怎么样?这是什么意思?这是否意味着将引用myArray分配给List中仅包含Dog的真实对象?如果是,我不能不考虑=右侧的信息是有用还是必要的情况.你能举个例子吗?
... = new ArrayList<Dog>();
至关重要或至少有用吗?
解决方法:
第一个问题:Java 7 introduces the diamond operator,在大多数情况下作为写出完整类型的泛型的语法糖.它可以省略,但它“仍然存在”.
第二个问题:
>左侧是一个列表,它是一个upper-bounded generic wildcard.它包含任何扩展或实现名为Animal的类的对象.除非将列表定义为lower-bounded generic wildcard(使用super关键字),否则您将无法在该列表中插入任何值.关于如何使用它们,何时使用它们以及如何对它们进行分类,有更多关于它们的内容in this Java Trail.
>右侧悬挂在那里有点不寻常,但如果您首先填充所需的列表,它可以用于分配上限泛型类型列表.
List<? extends Animal> fooList = new ArrayList<>();
List<Dog> barList = new ArrayList<>();
barList.add(new Dog());
barList.add(new Dog());
barList.add(new Dog());
barList.add(new Dog());
fooList = barList;
您仍然需要将其作为上限泛型类型进行迭代:
for(Animal d : fooList) {
d.walk();
d.talk();
}
从本质上讲,你现在拥有它的方式既误导又没有帮助,因为新的ArrayList< Dog>是空的,无法添加到.
内容总结
以上是互联网集市为您收集整理的java – 带集合的泛型全部内容,希望文章能够帮你解决java – 带集合的泛型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。