美文网首页
Java 泛型知识点

Java 泛型知识点

作者: 07120665a058 | 来源:发表于2018-09-03 10:13 被阅读8次
  • 泛型
泛型:其实就是参数化类型
泛型:在运行时是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

相关文章

网友评论

      本文标题:Java 泛型知识点

      本文链接:https://www.haomeiwen.com/subject/ogpvwftx.html