泛型
特点
- jdk1.5引入,本质是参数化类型,把类型作为参数传递
- 语法:<T,…> T称为类型占位符,表示一种引用类型
- 优点
泛型集合
- 参数化类型、类型安全的集合,强制集合元素的类型必须一致
- ArrayList al=new ArrayList();
- 对象al中只能添加String类型数据,避免类型转换时可能出现的问题
- 特点
- 编译时即可检查,而非运行时抛出异常
- 访问时,不必类型转换
- 不同泛型之间引用不能相互赋值,泛型不存在多态
泛型类
public class Generics<T> {
T t;
public void show(T tt){
System.out.println(tt);
}
public T getT(){
return t;
}
}
泛型方法
* 泛型方法
* 语法:<T> 返回值类型
*/
public class GenericsMethod {
public <T> void show(T t){
System.out.println("泛型方法:"+t);
}
public <T> T show1(T t){
System.out.println("泛型方法--"+t);
return t;
}
}
泛型接口
public interface GenericsInterface<T> {
String name="李四";
T server(T t);
}
泛型接口实现
public class GenericsInterfaceImpl1<T> implements GenericsInterface<T> {
@Override
public T server(T t) {
System.out.println(t);
return t;
}
}
public class GenericsInterfaceImpl implements GenericsInterface<String> {
@Override
public String server(String s) {
System.out.println(s);
return s;
}
}
案例
public class testGenerics {
public static void main(String[] args) {
Generics<String> generics=new Generics<>();
generics.t="你好";
generics.show("拜拜");
String s=generics.getT();
Generics<Integer> generics1=new Generics<>();
generics1.t=100;
generics1.show(200);
Integer integer=generics1.getT();
GenericsInterfaceImpl gen=new GenericsInterfaceImpl();
gen.server("拉拉");
GenericsInterfaceImpl1<Integer> gen1=new GenericsInterfaceImpl1<>();
gen1.server(1000);
GenericsMethod gm=new GenericsMethod();
gm.show("你好");
gm.show1(20);
}
}
其他相关文章