java泛型常用通配符实例解析
这篇文章主要介绍了java泛型常用通配符实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
今天在看ArrayList原码是看到这样的一个符号,好奇怪。
?表示通配符,表示的意思是匹配E或E的子类,具体类型未知。
1.限定通配符
编写一个类似于ArrayList的动态数据
publicclassGys{ privatefinalstaticintdefault_capacity=10; privateintendIndex=0; privateObject[]elemts; publicGys(){ this.elemts=newObject[default_capacity]; } publicvoidadd(Tt){ if(elemts.length-1 cs){ for(inti=0;i gys=newGys<>(); gys.add(25); Gys gys2=newGys<>(); gys2.add(2); gys.addAll(gys2); } }
修改上面的代码,将addAll参数改成如下
publicvoidaddAll(Gyscs){ for(inti=0;i这个时候代码编译通过了。并且能够正常的访问其中的元素。
2.无限定通配符。
改写上面的addAll方法代码。
publicvoidaddAll(Gys>cs){ for(inti=0;i上面的代码编译不通过。?表示类型不确定,从安全角度考虑无限定的泛型,无法进行写操作。
但是可以这样使用。/** *判断元素是否存在 */ publicbooleanisHas(Gys>gys,Objectelemt){ for(inti=0;i除了用法;还有的用法,表示类型是E或E的父类。不过多介绍了,用的少。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。