文档章节

博为峰Java技术题 ——JavaSE 泛型Ⅲ

博为峰教研组
 博为峰教研组
发布于 2016/12/07 19:47
字数 295
阅读 8
收藏 1

博为峰小博老师:

[使用类型通配符]

List<Object>不是List<String>的父类型,List<Integer>不是List<Number>的父类型,试图用以下方式赋值是不允许的:

第5行将报错”Type mismatch: cannot convert from List<Integer> to List<Number>”。有人可能觉得这样很不方便:我在一个方法里面只需要循环检索一个List,也不能利用多态放一个父类型进去,也不能重载,那怎么办呢?针对这个问题,Java给开发者提供了通配符”?”,看一下:

<?>是类型通配符,表示是任何泛型的父类型,这样List<Object>、List<String>这些都可以传递进入printList方法中,注意这里的参数不能写成List<E>,这样就报错了,E未定义。当然<?>也可以不加,不过这样会有警告:如果传递一个List<E>给List,相当于传递一个只承诺将它当作List(原始类型)的方法,这将会破坏使用泛型的类型安全。

再注意一点,使用类型通配符,只能从中检索元素,不能添加元素。

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724939 JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千! 经过了几...

Aduroidpc
2016/10/02
0
0
Cannot make a static reference to the non-stati...

今天碰到这样一些错误,Eclipse提示Cannot make a static reference to the non-static type T。代码如下: public class DAOFactory<D extends TemplateDAO<B>, B> {private static Map<Str......

开源中国驻成都办事处
2013/05/30
0
0
win10系统JDK8安装环境配置教程

本节博主主要介绍jdk8的安装,以及一些注意事项,同时博主也需要留着配置路径自己以后使用。 安装步骤: (一)下载JDK官网地址:http://www.oracle.com/technetwork/java/javase/downloads...

em_aaron
08/04
0
0
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
06/21
0
0
Spring 中好用的泛型操作API

随着泛型用的越来越多,获取泛型实际类型信息的需求也会出现,如果用原生API,需要很多步操作才能获取到泛型,比如: ParameterizedType parameterizedType = (ParameterizedType) ABServic...

宇的季节
06/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
46分钟前
1
0
OSChina 周四乱弹 —— 上帝对我单身年限的惩罚越来越长了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享张卫健的单曲《身体健康》 《身体健康》- 张卫健 手机党少年们想听歌,请使劲儿戳(这里) 昨天是重阳节咯, 可惜小小编辑总是晚...

小小编辑
48分钟前
8
0
django rest framework 外键序列化方法与问题总结

django rest framework 外键序列化方法与问题总结 当借口中需要出现一对多关系的时候,我们可以用rest_framwork的序列化功能来处理,代码如下. # models.pyfrom django.db import modelscl...

_Change_
昨天
3
0
SingleNumber136 leetCode

Given a non-empty array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you im......

woshixin
昨天
3
0
String ,  StringBuffer ,  StringBuilder的区别

String , StringBuffer , StringBuilder的区别 String 首先,String 是用来表示一个字符串常量的,它是一个不可变对象,意味着,一旦我们创建了某个字符串之后,就不能再改变它的值了,我们可...

tsmyk0715
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部