Java重要技术(20)泛型之参数化类型的特点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java重要技术(20)泛型之参数化类型的特点相关的知识,希望对你有一定的参考价值。

1.1. 参数化类型的特点

参数化类型有以下特点:

(1)参数化类型和没有类型参数的原始类型在编译后没有本质区别。

(2)类型参数不同的两个参数化类型,不能混用。

 

public class GenericParameterTest {

 

//参数化类型T,可以为String,Integer等引用类型。

static class  Sample<T> {

 

//不带参数的构造函数。

public Sample(){

this.obj = null;

}

public Sample(T obj){

this.obj = obj;

}

 

//参数化类型作为返回值的类型。

public T work(){

System.out.println("work:"+this.obj);

return this.obj;

}

 

//参数化类型作为参数的类型。

public void update(T obj){

this.obj = obj;

}

 

 

//参数化类型作为属性的类型。

private T  obj;

 

}

 

public static void main(String[] args) {

 

//语法错误。错误用法。

//Sample<int>  anotherSample = new Sample<int>(1);

 

//正确用法。T是Integer.

Sample<Integer> anotherSample = new Sample<Integer>(1);

 

//正确用法:不使用类型参数,相当于Sample<String>。

       //此时可以推导出类型参数为String。

Sample  sam = new Sample("Hello");

 

//错误用法,不能将String转化为Integer.

//Integer  result = sample.work();

 

//正确用法。String work();

String result = sample.work();

 

//原始类型。相当于Sample<Object>但是不同于Sample<Object>。

        //此时只能推导出类型参数为Object。

Sample  sa = new Sample();

//错误用法,不能将Object转化为String.

//String  res = sa.work();

 

//正确用法。Object work();

Object  res = sa.work();

 

}

 

 

以上是关于Java重要技术(20)泛型之参数化类型的特点的主要内容,如果未能解决你的问题,请参考以下文章

Java重要技术(22)泛型之参数化类型的本质

Java重要技术(24)泛型之使用反射访问参数化类型

Java重要技术(19)泛型之泛型的使用方法

Java重要技术(23)泛型之问号通配符

Java基础 -- 泛型之泛型参数

Java 泛型之 JDK 的底层实现原理