javaSE.Generic泛型
泛型
- java泛型是jdk1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递;
- 常见形式有:泛型类,泛型接口,泛型方法
- 语法: <T,...> T称为类型占位符,表示一种引用类型;
- 好处:1.提高代码的重用率;
2.防止类型转换异常,提高代码的安全性;
【注意】1. 只能是引用类型
2. 不同泛型间不能相互赋值;
泛型集合
定义集合时,设置泛型,避免集合中装入不同类型的数据;
/**
* 泛型类
* 语法:类名<T>
*/
public class GenericClass<T> {
//使用泛型
//1.创建变量
T t;
//2.作为方法参数
public void show(T t){
System.out.println(t);
}
//3.作为方法返回值
public T getT(){
return t;
}
}
/**
* 泛型接口
* 语法:接口名<T,...>
* @param <T>
*/
public interface GenericInterface<T> {
String name="tom";
T server(T t);
}
public class InterfaceImpl implements GenericInterface<String>{
@Override
public String server(String s) {
System.out.println("泛型接口,"+s);
return s;
}
}
/**
* 泛型类继承
* @param <T>
*/
public class InterfaceImpl2<T> implements GenericInterface<T> {
@Override
public T server(T t) {
System.out.println("泛型类、泛型接口,"+t);
return t;
}
}
public class GenericMethod {
public <T> T show(T t){
System.out.println("泛型方法,"+t);
return t;
}
}
public class test {
public static void main(String[] args) {
//使用泛型类创建对象
System.out.println("-----------String-----------");
GenericClass<String> genericDemo=new GenericClass<String>();
genericDemo.t="hello";
genericDemo.show("hello word");
String s=genericDemo.getT();
System.out.println(s);
System.out.println("------------Integer----------");
GenericClass<Integer> genericDemo2=new GenericClass<Integer>();
genericDemo2.t=100;
genericDemo2.show(200);
Integer integer=genericDemo2.getT();
System.out.println(integer.toString());
System.out.println("-----------接口实现 String-----------");
InterfaceImpl impl=new InterfaceImpl();
impl.server("hello");
InterfaceImpl2<Integer> impl2=new InterfaceImpl2<>();
impl2.server(100);
GenericMethod genericMethod=new GenericMethod();
genericMethod.show("Hello");
genericMethod.show(100);
}
}
本文来自博客园,作者:老李学Java,转载请注明原文链接:https://www.cnblogs.com/JasonPro/p/15949560.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现