##泛型
泛型是一种把类型明确的工作推迟到创建对象或调用方法的方式,这种方式又称为参数化类型,即把类型当作参数传递。
1、泛型类
泛型类是把泛型定义在类上。
格式:
public class 类名<泛型类型>
注意:泛型类型必须是引用类型
例如,定义ObjectBeanA类,在ObjectBeanA类中定义show()方法输出不同的数据类型:
public class ObjectBeanA{
public void show(String str){
System.out.println(str);
}
public void show(int i){
System.out.println(i);
}
}
public class TestObjectA{
public static void main(String[] args){
ObjectBeanA ob=new ObjectBeanA();
ob.show("hello");
ob.show("1234");
}
}
在ObjectBeanA类中引用泛型类后如下:
public class ObjectBeanA<T>{
public void show(T t){
System.out.println(t);}
}
public class TestObjectA{
public static void main(String[] args){
ObjectBeanA ob=new ObjectBeanA();
ob.show("hello");
ob.show(1234);
ob.show("ture");
}
}
2、泛型方法:
泛型方法是把泛型定义在方法上
格式:
public<泛型类型>返回类型 方法名(泛型类型)
在ObjectBeanA类中应用泛型方法后如下:
public class ObjectBeanA{
public<T>void show(T t){
System.out.println(t);
}
}
public class TestObjectA{
public static void mian(String[] args){
ObjectBeanA ob=new ObjectBeanA();
ob.show("hello");
ob.show(1234);
ob.show("ture");
}
}
3、泛型接口
泛型接口是把泛型定义在接口上。
格式:
public interface 接口名<泛型类型>
在ObjectBeanA类中应用泛型接口后如下:
public interface ObjectDao<T>{
public abstract void show(T t);
}
public class ObjectBeanA<T>implements ObjectDao<T>{
public void show(T t){
System.out.println(t);
}
}
public class Test{
public static void main(string[] args){
ObjectDao<Interger> ob=new ObjectBeanA<Integer>();
ob.show(1234);
ObjectDao<String> ob1=new ObjectBeanA<String>();
ob1.show("hello");
}
}
4、泛型应用
利用泛型将问题提前暴露,优化了程序设计。