|
|
刚喝完酒,不清醒,设计模式就是一土鳖!
舒服,憋在心里不舒服,虽然有点过重了。。。
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编译错误,未知类型嘛~~~
|
|