Java 泛型知识点

2018-09-03  本文已影响8人  07120665a058
泛型:其实就是参数化类型
泛型:在运行时是object
泛型参数:不能是基本类型 (int) ,只能是Integer等包装类型或对象
类型推导:参数,返回值(方法中没有传入的泛型参数,根据返回值给定的类型定义)
编译时已经知道泛型的类型
有泛型参数的 和 没有泛型参数的 可以互相转换
举例:Pair<T, T>与它的原始类型Pair之间存在”is-a”关系,Pair<T, T>在任何情况下都可以转换为Pair类型
? Super Number    ?是父类
? Extends Number    ? 是子类
?:声明我是个泛型
public static<T> T empty()  
<T> 声明泛型函数,是形参,函数中用到的所有泛型符号都要在其中声明
? :擦除为Object
? Extend T :擦除为T
泛型方法(函数声明,泛型参数)
泛型类/接口
泛型变量

简单实例

<T> T[] toArray(int length, Generic<T> generic) {
    return generic.returnArray(length);
}

@Test
void should_return_array() {
   String[] stringArray = toArray(5, (length) -> new String[length]);
   assertEquals(5, stringArray.length);
   assertEquals(stringArray.getClass().getComponentType(), String.class);
}

interface Generic<T> {
    T[] returnArray(int length);
}

http://www.importnew.com/19740.html

上一篇下一篇

猜你喜欢

热点阅读