java泛型
2023-09-27 14:20:50 时间
1 /** 2 * 泛型定义 3 * 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。 4 * 5 * 泛型的规则 6 * 1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 7 * 2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。 8 * 3、泛型的类型参数可以有多个。 9 * 4、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName("java.lang.String"); 10 * 5、泛型有通配符上限与通配符下限,例如: 11 * (1):public class Demo<T extends Comparable & Serializable> {}。// T类型就可以用Comparable声明的方法和Seriablizable所拥有的特性了 12 * (2):还可以向上限制,如<? super Double>,表示类型只能接受Double及其上层父类类型,如Number、Object类型的实例。 13 * 习惯上称为“有界类型”。 14 * 15 */
例子:
1 private static <T> T getObject(Class<T> o) throws Exception{//定义了一个泛型方法 2 T t=o.newInstance(); 3 return t; 4 } 5 6 static class Book<M>{//定义了一个泛型类 7 private M name; 8 9 public M getName() { 10 return name; 11 } 12 13 public void setName(M name) { 14 this.name = name; 15 } 16 }
1 public static void main(String[] args) throws Exception { 2 Book<String> b=new Book<String>(); 3 b.setName("a"); 4 Book<Integer> b1=new Book<Integer>(); 5 b1.setName(2); 6 System.out.println(b.getName()); 7 System.out.println(b.getClass()==b1.getClass()); 8 9 }
运行结果为true.
泛型常见什么T、K、V、E这种符号是参数的形式参数,自己也可以定义成什么M、N之类的。符号?使用是在当我们类型不能确定时使用,也就是通配符。
要多学习。。。。。。
相关文章
- 深入理解java的泛型
- Java进阶 | 泛型机制与反射原理
- 玩转Java泛型
- JAVA之万物皆空
- 【JAVA UI】HarmonyOS怎么判断Service怎么在后台运行
- JAVA——泛型类和泛型方法(静态方法泛型)
- java泛型 8 泛型的内部原理:类型擦除以及类型擦除带来的问题
- java泛型 7 泛型的基本介绍和使用
- 《Java和Android开发学习指南(第2版)》——第1章,第1.1节下载和安装Java
- 基于Java+MySQL 实现(Web)日程管理系统【100010222】
- Java泛型的PECS原则
- JAVA泛型总结
- Java poi Excel导出文件,Java poi 分批次导出大批量数据
- java 反射和泛型-反射来获取泛型信息
- java 泛型的使用
- Java学习-077-多线程10:线程资源同步问题实例演示
- Java集合框架和泛型机制
- 【JAVA】泛型代码和虚拟机、有泛型和无泛型的差异
- 【JAVA】泛型类的概念
- Java泛型解析(01):认识泛型
- Java并发编程
- Java笔记5:单例模式
- 【Java 面试题】经典 Java 面试题 200 问(上)