首页 > 代码库 > Java重要技术(21)泛型之参数化类型的特点(续)

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)泛型之参数化类型的特点(续)