Java——泛型
来源:互联网 发布:淘宝汽车拥品 编辑:程序博客网 时间:2024/06/07 03:14
泛型就像一个模板,编写好的代码可以被很多不同类型的对象重用。解决的问题就是滥用Object类型变量,然后强转。
如何自定义一个泛型类呢?
泛型类就是具有一个或多个类型变量的类,典型的就是ArrayList,经常用到。
public class Gen<T>{private T first;private T second;public Gen(){}public Gen(T first,T second){this.first=first;this.second=second;}public T getFirst(){return first;}public void setFirst(T value){first=value;}}
在类名后面加上< T>即可,在java库中E表示集合的元素类型,K表示表的键类型,V表示值类型。T表示任意类型(还可以使用U或S)。
泛型方法
上面的get,set就是泛型方法,不局限于泛型类中,也可以定义在普通类中。
类型限制
如果要对类型变量进行限制,通过T来设置就行。如:
public static <T extends Comparable & Serivalizable> T method(){...}
这样写就表示T必须是他们的子类才可传入。
底层原理
在虚拟机中是没有泛型概念的,不管你定义的是什么泛型类,都会翻译成原始类型(如果有限定就是限定类型,没有限定就是Object类型),当我们去调用泛型方法时,编译器插入强制类型转换,也就是说编译器会将返回的Obejct类型,强转为我们定义的类型。
通配符
Gen< ? extends Comparable>
更高深的用法:
public < T extends Comparable< ? super T>> T method(){...}
注意
1.不能用基本类型实例化类型参数;比如Gen< double>是错误的,原因就是Object不能存储double值,但可以用Gen< Doubel>。
2.不能创建参数化类型的数组
如Gen< String> t=new Gen< String>[10];是错误的。
3.不能构造泛型数组。
阅读全文
0 0
- java——泛型
- Java——泛型
- JAVA——泛型
- Java——泛型
- Java——泛型
- java——泛型
- Java——泛型
- java高新技术—泛型
- Java基础—泛型
- JAVA加强——泛型
- Java泛型——泛型类
- 【Java核心技术——泛型】
- Effective Java——泛型
- java基础——泛型
- java学习——泛型
- Java Base —— 泛型
- Java——泛型Generic
- Java基础——泛型
- Java输出数组的三种方法
- a java runtime environment or java........
- Mybatis学习笔记之三:Mybatis的常用配置介绍
- LeetCode 169. Majority Element
- 搭建基于CXF的WebService服务器及其应用
- Java——泛型
- AJAX POST&跨域-CORS
- 做市业务基础
- nginx优化
- UnityException: Tag: xxx is not defined.
- POW-挖矿介绍-比特币
- PHP内核探索:嵌入式PHP
- HBase Snapshot
- Java循环输出九九乘法表(以及print和println的区别)