1、通配符,代表未知类型,代表不关心或无法确定实际操作的类型,一般与容器类配合使用。
publicvoidtestV(List<?>list){}
2、<? extends T>,定义上限,期间只有阅读能力。这种方法表明参数化的类型可能是指定的类型或子类型。
//t1要么是Test2,要么是Test2的子类 publicvoidtestC(Test1<?extendsTest2>t1){ Test2value=t1.getValue(); System.out.println("testC中的:"+value.getT()); }
3、<? super T>,下限定义,有阅读能力和部分写作能力,子类可以写入父类。这种方法表明参数化的类型可以是指定的类型,也可以是父类。
//t1要么是Test5,要么是Test5的父类 publicvoidtestB(Test1<?superTest5>t1){ //子类代替父类 Test2value=(Test2)t1.getValue(); System.out.println(value.getT()); }
通配符的使用注意
通配符的形式和类型参数经常一起使用。
类型参数的形式可以取代通配符。
能够使用通配符的人使用通配符,因为通配符在形式上往往更简单,可读性更好。
本教程操作环境:windows7系统、java10版,DELL G3电脑。
如果类型参数之间有依赖关系,返回值依赖类型参数,或者需要写作,则只能使用类型参数。
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容