Java中的泛型<T>类与方法
泛型就是变量类型的参数化。在使用泛型前,存入集合中的元素可以是任何类型的,当从集合中取出时,所有的元素都是Object类型,需要进行向下的强制类型转换,转换到特定的类型。而强制类型转换容易引起运行时错误。
泛型类型参数只能被类或接口类型赋值,不能被原生数据类型赋值,原生数据类型需要使用对应的包装类。
例子一:使用了泛型
例子二:没有使用泛型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
class Test<T> {
private T ob; // 定义泛型成员变量
public Test(T ob) {
this .ob = ob;
}
public T getOb() {
return ob;
}
public void setOb(T ob) {
this .ob = ob;
}
public void showType() {
System.out.println( "T的实际类型是: " + ob.getClass().getName());
}
}
public class TestDemo {
public static void main(String[] args) {
// 定义泛型类Gen的一个Integer版本
Test<Integer> intOb = new Test<Integer>( 88 );
intOb.showType();
int i = intOb.getOb();
System.out.println( "value= " + i);
System.out.println( "----------------------------------" );
// 定义泛型类Gen的一个String版本
Test<String> strOb = new Test<String>( "Hello Gen!" );
strOb.showType();
String s = strOb.getOb();
System.out.println( "value= " + s);
}
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
class Test2{
private Object ob; // 定义一个通用类型成员
|