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

Posted

tags:

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

1.1. 参数化类型的特点2

 

类型参数不同但是存在继承关系的两个参数化类型,仍然不能混用。类型参数的继承关系不能推导出参数化类型具有继承关系。

public class GenericParameterTest2 {

 

static class Base {}

static class Derived  extends Base {}

static class Generic<T>{}

 

 

/**

 * @param args

 */

public static void main(String[] args) {

 

//正确用法,T都是Base

Generic<Base>  base = new Generic<Base>();

 

//正确用法,T都是Derived

Generic<Derived> derived = new Generic<Derived>();

 

//错误用法。两者的T不相同。

//Generic<Base>  base2 = new Generic<Derived>();

 

//错误用法。两者的T不相同。

//Generic<Derived> derived2 = new Generic<Base>();

 

 

//正确用法。原始类型,可以使用任何类型参数的参数化类型来赋值。

Generic  base4 = new Generic<Base>();

 

//正确用法。原始类型可以给任何类型参数的参数化类型来赋值。

Generic<Base>  base5 = new Generic();

 

}

 

 

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

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

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

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

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

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

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