Java泛型解析(04):约束和局限性.doc

Java泛型解析(04):约束和局限性.doc

ID:62303065

大小:131.63 KB

页数:7页

时间:2021-04-26

Java泛型解析(04):约束和局限性.doc_第1页
Java泛型解析(04):约束和局限性.doc_第2页
Java泛型解析(04):约束和局限性.doc_第3页
Java泛型解析(04):约束和局限性.doc_第4页
Java泛型解析(04):约束和局限性.doc_第5页
资源描述:

《Java泛型解析(04):约束和局限性.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、优选Java泛型解析(04):约束和局限性      前两节,认识和学习了泛型的限定以及通配符,初学者可能需要一些时间去体会到泛型程序设计的好处和力量,特别是想成为库程序员的同学就需要下去体会通配符的运用了,应用程序员则需要掌握怎么使用泛型,这里针对泛型的使用中的约束和局限性做一个介绍性的讲解。不能用基本类型实例化类型参数   这个很好理解,实例化泛型类时泛型参数不能使用基本类型,如List这是不合法的,要存储基本类型则可以利用基本类型的包装类如List、List

2、le>等,下面补充一下八种基本类型对应的包装类,和默认初始值[code01]:[java]viewplaincopyprint?1.byte                 Byte            0  2.short                Short           0  3.int                  Integer         0  4.long                 Long            0L  5.float             

3、   FLoat           0.0F  6.double               Double          0.0D  7.char                 Character       'u0000'  8.boolean              Boolean         false  byteByte0shortShort0intInteger0longLong0LfloatFLoat0.0FdoubleDouble0.0DcharCharacter'u0

4、000'booleanBooleanfalse不能实例化类型参数   7/7优选Java中创建对象使用new关键字,但是泛型的类型参数不能用于实例化对象,如:[code02][java]viewplaincopyprint?1.public Couple() {wife = new T(); husband = new T();} // 错误  publicCouple(){wife=newT();husband=newT();}//错误   如果是在想要创建T对象,就必须使用Java反射来创建对象了

5、,遗憾的是T.class在Java中也是不被支持使用的,所以一种弥补的方式,传入一个类型阐述为T的Class对象,如Class[code03][java]viewplaincopyprint?1. public static  Couple createInstance(Class clazz) {  2.          try {  3.                    return new Couple(clazz.newInstance(), clazz.

6、newInstance());  4.         } catch (Exception e) {  5.                    return null ;  6.         }  7.}  publicstaticCouplecreateInstance(Classclazz){try{returnnewCouple(clazz.newInstance(),clazz.newInstance());}catch(Exceptione){returnn

7、ull;}}   初学者对Java反射不熟悉不用着急,这里只要知道不能实例化类型参数即可,同理,不能实例化一个泛型数组,如[code04][java]viewplaincopyprint?1.public static  T[] maxTwo(T[] values) {T[] array = new T[2];} // 错误  publicstaticT[]maxTwo(T[]values){T[]array=newT[2];}//错误   泛型构建数组是不合法的,因为这么构建在擦除之后构

8、造的永远是new Object[2],这不是我们所希望的结果。而且这样会导致一些运行时错误。为了更进一步说明隐患问题,来看看下面代码:7/7优选[code05][java]viewplaincopyprint?1.public static > T[] maxTwo(T[] array) {  2.     Object[] result = new Object[2];  3.     return (T[])

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。