集合框架之泛型
集合框架之泛型
本质:是参数化类型,把类型作为参数传递
常见形式:泛型类、泛型接口、泛型方法
好处:1.提高代码的重用性;2.防止类型转换异常,提高代码的安全性
package com.oop.demo11; public class TestGeneric { public static void main(String[] args) { //使用泛型类创建对象 //注意:1.泛型只能使用引用类型;2.不同泛型对象不能相互赋值 MyGeneric<String> myGeneric = new MyGeneric<String>();//尖括号里只能填引用类型 myGeneric.t="hello"; myGeneric.show("大家好"); String string=myGeneric.getT(); System.out.println(string); System.out.println("================="); MyGeneric<Integer> myGeneric2 = new MyGeneric<Integer>(); myGeneric2.t=100; myGeneric2.show(200); Integer integer=myGeneric2.getT(); System.out.println(integer); } } package com.oop.demo11; /** * 泛型类 * 语法:类名<T> * T表示类型占位符,表示一种引用类型,如果编写多个使用逗号隔开 */ public class MyGeneric<T> { //使用泛型T //1.创建变量 T t; //2.作为方法的参数 public void show(T t){ System.out.println(t); } //3.泛型作为方法的返回值 public T getT(){ return t; } }
package com.oop.demo11; public class TestGeneric { public static void main(String[] args) { MyInterfaceImp1 imp1=new MyInterfaceImp1(); imp1.server("xxxxxxxxxxx");
//在创建对象时再确定T的类型MyInterfaceImp2<Integer> imp2=new MyInterfaceImp2<Integer>();
imp2.server(1000);
}
}
package com.oop.demo11;
/** * 泛型接口
* 语法:接口名<T>
*/ public interface MyInterface<T> {
String name="张三";
T server(T t);
}
package com.oop.demo11;
public class MyInterfaceImp1 implements MyInterface<String> {
@Override public String server(String t) {
System.out.println(t);
return t;
}
}
package com.oop.demo11;
public class MyInterfaceImp2<T>implements MyInterface<T>{
@Override
public T server(T t) {
System.out.println(t);
return t;
}
}
package com.oop.demo11; public class TestGeneric { public static void main(String[] args) { MyGenericMethod myGenericMethod = new MyGenericMethod(); //类型由传递的数据决定 myGenericMethod.show("中国加油"); myGenericMethod.show(200); myGenericMethod.show(3.14); } } package com.oop.demo11; /** * 泛型方法 * 语法:<T>方法返回值类型 */ public class MyGenericMethod { //泛型方法 public <T> void show(T t){ System.out.println("泛型方法"+t); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现