六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

java泛型

[复制链接]

升级  24.67%

23

主题

23

主题

23

主题

秀才

Rank: 2

积分
87
 楼主| 发表于 2013-1-26 13:15:28 | 显示全部楼层 |阅读模式
刚喝完酒,不清醒,设计模式就是一土鳖!
 
舒服,憋在心里不舒服,虽然有点过重了。。。
 
java泛型,反正就是用起来蛮开心的,不用对不同类型的参数写很多代码,统一用T,E,K,V之类的代替了。。
 
什么概念的,都是浮云。
 
运用泛型的代码和不用泛型的代码在字节码的级别中是有区别的,多了两个常量:
 
const #8 = AscizSignature;const #9 = Asciz<T:Ljava/lang/Object;>Ljava/lang/Object;; 
看了inside in jvm,没找到什么好货。。
 
java泛型,我知道,不能创建形如:T[] array = new T[];,但是能声明泛型数组,比如在一个方法中将一个泛型数组作为参数,
我想说的是,就算你声明一个泛型数组,如果你传入的实参是基础类型,形如:
 
<T> void methodName(T[] array){        .............}//调用时int[] array = {0,1,2,3,4,5,6,7,8,9};methodName(array)//Conpile error 
 如果是引用类型就好了,如果你写一个工具类,想打印所有类型的数组,那么如果是基础类型你就用Overload吧。
 
哦哦,还有,如果时声明了通配符的泛型形如:T<?>,向这类Method中传入参数并且对参数进行需要安全类型操作的时候,例如:
 
/declaration/Collection<?> c;c.add(特定类型)//compile error编译错误,未知类型嘛~~~  
 
  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表