泛型
泛型是jdk1.5的新特性,它的语法格式为<>,可以用在类名后面和方法后面,用在类名后表示这是一个泛型类,用在方法后表示泛型方法,一般在里面使用字母T作为占位符,表示引用类型,这个T可以创建变量,用在方法里面可以作为参数,在方法体里面还可以做方法的返回值。但是这个T无法实例化!
注意事项:
- 当其他类创建泛型类的实例化对象的时候,必须给定一个泛型类的类型,这个类型只能是引用类型,
- 实例化以后,也可以直接对占位符赋值,它属于什么类型取决于你实例化对象的时候给定的类型
- 不同泛型类型之间不能相互赋值
泛型的好处:
- 提高代码的重用性
- 防止类型转换异常,提高代码的安全性
泛型类代码:
public class Demo03<T> {
T t;
public T getT() {
return t;
}
public void show(T t){
System.out.println(t);
}
class Demo04{
public static void main(String[] args) {
Demo03<String> demo03 = new Demo03<String>();
demo03.getT();
demo03.show("好像懂了");
demo03.getT();
}
}
泛型接口:
我们也可以在定义接口的时候使用泛型,用法是在接口名称后面加上
public interface fanxing<T>{
T server(T t);
}
public class shixian inmplents fanxing<String>{
//重写接口的方法,使用这个方法的时候必须给T传递实际参数
public T server(String t){
System.out.println(t);
return t;
}
}
public class shixian2<T> inmplents fanxing<T>{
//重写接口的方法,这种实现类也是泛型的类要调用方法的话就在调用的类里赋实际值
public T server(T t){
System.out.println(t);
return t;
泛型方法:
语法是
public class fanxing{
//泛型方法
public <T>T server(T t){
System.out.println(t);
return t;
}
}
class fangfa{
public static void main(String [args]){
fanxing f = new fanxing();
f.server(123);//泛型的类型变为integer类型
f.sever("你好中国");//泛型的类型变为String类型
}
}
泛型集合:
它是参数化类型、类型安全的集合,强制集合元素的类型必须一致。
特点
- 编译时即可检查,而非运行时抛出异常。
- 访问时,不必进行类型转换。
- 不同泛型之间的引用不能相互赋值,泛型不存在多态。
它的用法就是在创建集合的时候给一个
class jihe{
public static void main (String [args]){
Arraylist<String> arraylist = new Arraylist<String>();
arraylist.add("a");
arraylist.add("b");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!