日期:2011-03-22 16:12:00 来源:本站整理
操纵Java范型需求注意的地方[Java编程]
本文“操纵Java范型需求注意的地方[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
静态办法要想范化,需求指定其范例参数
非范化范例中的实例办法要想范化,也需求拟定其范例参数.
范化范例中的实力办法可以直接利用其范例本身的范例参数.
范型不是协变的,即List<Integer>不是List<Number>的子类.
不能实例化范型范例的数组,即new List<String>[3] 是不合理的,除非范例参数是一个未绑定的通配符,即new List<?>[3] 是合理的.
构造耽误,在代码编写时我们不能通过范例参数来构造一个该范例的实例,缘由是我们不知道若何构造,范例参数的实际范例是在运行时肯定的.
关于注意5所描写的问题我们有一个办理办法是List<String> list = (List<String>[]) new Object[3];但是假如是运行时成立数组呢,范例信息是运行时肯定的,那就换种写法T[] tarray = (T[]) new Object[3];
上面的数组构造是不被举荐的,最好的办法是将范例信息传送到办法中,如method(Class<V> type) { V[] array = (V[])Array.newInstance(type, length); },可以参考ArrayList类的toArray(T[] a)办法的实现.
构造通配符引用,假如set是一个Set<?>范例,则Set<?> set2 = new HashSet<?>(set);是不合理的,改成Set<?> set2 = new HashSet<Object>(set);就合理了.
以上是“操纵Java范型需求注意的地方[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论