热门
最新
红包
立Flag
投票
同城
我的
发布
在List、Set、Map中经常见到,用来限制Class中的参数类型,确保Class中参数的一致性。例如:List list = new ArrayList<>();创建了一个内部参数是String类型的类,list中的操作对象都是String。代表任意java类型,只有在不关心数据的具体类型下才使用通配符表示,但在一些情况下,需要将传入的数据进行强转,但这样不如直接传入。
另外除了<?>,还有<? extends T>上界通配符和<? super T>下界通配符。<? extends T> 表示传入数据值需要是T类型或T的子类,<? suprt T>表示传入数据值需要是T类型或T的超类。
一般来说,<?>主要用于变量上,主要用于类或方法上。下图中,list的元素类型为?,但往里边添加String时,会显示出错,因为list中的类型是一个未知的java类型,不属于任何类,所以往里边添加数据时会出错。但可以从list中取出数据,取出的数据类型为Object。
建议采用的顺序是 List<T>、List<?>、List<Object>
摘录于Java基础教程系列https://blog.csdn.net/guorui_java/category_11276743.html
每日学习打卡
CSDN App 扫码分享
6
18
打赏
- 复制链接
- 举报
下一条:
都说这里全是大神,怎么我就联系不上大神勒




