提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数
提示:以下是本篇文章正文内容,下面案例可供参考
一、泛型类是什么?
举个例子
/*
*T是类型占位符,表示一种引用类型,如果编写多个使用逗号隔开
* 语法:类名<T>
*/
public class MyGeneric<T>{
//使用泛型类T
//创造变量
T t;
//作为方法的参数
public void show(T t){
System.out.println(t);
}
//使用泛型作为方法的返回值
public T getT(){
return t;
}
}
public class Test {
public static void main(String[] args) {
//使用泛型类创建对象
MyGeneric<String> myGenericl=new MyGeneric<>();
myGenericl.t="hello";
myGenericl.show("你好世界!");
String string= myGenericl.getT();
MyGeneric<Integer> myGeneric2=new MyGeneric<>();
myGeneric2.t=100;
myGeneric2.show(200);
Integer integer=myGeneric2.getT();
}
}
二、泛型接口
语法:接口名
注意:不能使用泛型静态常量
代码如下(示例):
public interface MyInterface<T> {
String name="张三";
T server(T t);
}
public class MyInterfacempl implements MyInterface<String>{
@Override
public String server(String t) {
System.out.println(t);
return null;
}
}
public class MyInterfacempl2<T> implements MyInterface<T>{
@Override
public T server(T t) {
System.out.println(t);
return null;
}
}
MyInterfacempl impl=new MyInterfacempl();
impl.server("世界你好!");
MyInterfacempl2 impl2=new MyInterfacempl2();
impl2.server(1000);
三、泛型方法
代码如下(示例):
/*
*语法: <T> 返回值类型
*/
public class MyGenericMethod {
//泛型方法
public <T> T show(T t){
System.out.println("泛型方法"+t);
return t;
}
}
public class Test {
public static void main(String[] args) {
//泛型方法的调用
MyGenericMethod myGenericMethod=new MyGenericMethod();
myGenericMethod.show("中国牛牛");
myGenericMethod.show(200);
myGenericMethod.show(3.14);
}
}
总结
好处:1.提高代码的重用性
2.防止类型转换异常,提高代码的安全性