注:J2ME流行的开发平台不能支持泛型也不支持基本类型的自动拆/装箱,所以此文章只做J2ME学者简单的了解。
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
泛型在使用中还有一些规则和限制:
1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
3、泛型的类型参数可以有多个。
4、泛型的参数类型可以使用extends语句,例如 <T extends superclass>。习惯上成为“有界类型”。
5、泛型的参数类型还可以是通配符类型。例如Class <?> classType = Class.forName(java.lang.String);
举个最简单的例子吧
例如你定义一个类
class Test
{
Test(String A){return A;}
}
那么你使用这个类创建对象的时候,就只能用String参数来构造,例如 Test aa=new Test("DF"),但是不能用其他类型的参数来构造了。
如果用泛型的方式来设计
class Test <T>
{
public Test(T A){Syste.out.println(A);}
}
那么就是一个通用的类,你可以适合各种类型
例如:Test <String> aa=new Test <String>("sdf");也可以是Test <Integer> aa=new Test <Integer>(23);