博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
泛型的通配符问题
阅读量:6756 次
发布时间:2019-06-26

本文共 1767 字,大约阅读时间需要 5 分钟。

hot3.png

泛型是把类型作为一种参数来指定,使用泛型之后类型就不是一成不变的了 ,而是通过参数来进行设定。泛型可以是系统JAVA中的 类 ,也可以是自己创建的类, 另外还有泛型通配符,无限定的通配符? 或者是 上限通配符 ?extends T , 或者是 下限通配符 ?super T 。 上限代表最高继承与T 类型 ,下限代表最低是T类型 或是T的 父类 。以下 介绍几种泛型的使用例子。 `

import java.io.Serializable;import java.util.ArrayList;import java.util.Collection;import java.util.List;//泛型的通配符问题public class Ex_21 {	// 演示1:泛型参数不会主动考虑继承关系	public void test() {		List listB = new ArrayList();		List
listC = new ArrayList
(); List
listA = new ArrayList
(); // 遍历输出B print_1(listB); print_1(listA); print_1(listC);// print_2(listB);// print_2(listA);// print_2(listC); }//输出 public void print_1(Collection
c) { for (Object obj : c) { System.out.println(obj); } }//输出方法 public void print_2(Collection c){ for(Object obj: c){ System.out.println(obj); } } /* * 总结 :明显 第二种会报错, Object 其父类 但是 泛型 不会主动考虑继承关系 * */ //演示2: 通配符 上界 public void test2(){ List
listA = new ArrayList();// listA.add(new A()); //假如想加入 A的类型 和A的子类怎么办?//如下处理就可以 List list = new ArrayList(); list.add(new A()); list.add(new B()); list.add(new C()); //无法使用 带有泛型通配符的引用调用 泛型的方法 } //演示3: 自定义泛型方法这个比较常用 泛型方法 可以接受 不同类型参数 实现相同功能 ; public static
T getLast(T[] a){ return a[a.length-1] ; } public void test3(){ String [] str = {"100","200","300"}; Integer [] in = {400,500,600}; Ex_21.
getLast(str); Ex_21.
getLast(in); } //演示4: 实现指定类型 ,容器类型 public void test4(){ M_value
m = new M_value
(); m.setValue(100); Integer i = m.getValue(); System.out.println(i); } //该类封装了数据, 数据 继承了Number 并且实现了Serialziable 和 Comparable 接口 class M_value
{ private M value; public M getValue(){ return value; } public void setValue(M value){ this.value = value; } }`

转载于:https://my.oschina.net/dou2016/blog/687970

你可能感兴趣的文章
运算符
查看>>
ListView 里面嵌套 GridView 遇到的问题及其解决方法。
查看>>
Python2、3解释器inpurt()函数的区别
查看>>
push to origin/master was rejected错误解决方案(IDEA)
查看>>
Eclipse 遇到的问题和快捷键记录
查看>>
触底判断
查看>>
C#进阶之路(八)集合的应用
查看>>
dos 命令
查看>>
bzoj3039
查看>>
java空和非空判断
查看>>
Linux系统时间的设置
查看>>
position:fixed失效情况
查看>>
丢了好几天没写,只因在做个小项目吗
查看>>
SSM-Spring-13:Spring中RegexpMethodPointcutAdvisor正则方法切入点顾问
查看>>
C#目录:藏锋
查看>>
如何在代码里打印程序所占用的内存
查看>>
大道至简
查看>>
实验5 Spark SQL编程初级实践
查看>>
SVG图案
查看>>
java 基础 --- volatile
查看>>