我们在定义泛型时并不指定泛型的类型,而是使用占位符。在需要实例化对象时再传入泛型的类型
下面是一个双参数的自定义的泛型类。
package cn.hpu.generic;
public class Num2Generic<T,X>{
private T num1;
private X num2;
public T getNum1() {
return num1;
}
public void setNum1(T num1) {
this.num1=num1;
}
public X getNum2() {
return num2;
}
public void setNum2(X num2) {
this.num2=num2;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Num2Generic<Integer,Float> obj=new Num2Generic<Integer,Float>();
obj.setNum1(10);
obj.setNum2(123.4f);
System.out.println("Integer:"+obj.getNum1()+" Float"+obj.getNum2());
Num2Generic<Integer,String> obj2=new Num2Generic<Integer,String>();
obj2.setNum1(456);
obj2.setNum2("你好");
System.out.println("Integer:"+obj2.getNum1()+" String:"+obj2.getNum2());
}
}
总结:认真观察,不难得出所谓的自定义泛型类和我们使用集合泛型时,没有大的区别。只是集合泛型明确指明了泛型得类型,而我们自定义泛型类使用了占位符,没有指定泛型的类型,等实例化对象时才明确给出泛型的类型。