Java范型浅析收藏
新一篇: 枚举入门 | 旧一篇: 几个著名java开源缓存系统的介绍
从jdk1.5开始,Java中开始支持范型了。范型是一个很有用的编程工具,给我们带来了极大的灵活性。在看了《java核心编程》之后,我小有收获,写出来与大家分享。
所谓范型,我的感觉就是,不用考虑对象的具体类型,就可以对对象进行一定的操作,对任何对象都能进行同样的操作。这就是灵活性之所在。但是,正是因为没有考虑对象的具体类型,因此一般情况下不可以使用对象自带的接口函数,因为不同的对象所携带的接口函数不一样,你使用了对象A的接口函数,万一别人将一个对象B传给范型,那么程序就会出现错误,这就是范型的局限性。
所以说,范型的最佳用途,就是用于实现容器类,实现一个通用的容器。该容器可以存储对象,也可以取出对象,而不用考虑对象的具体类型。因此,在学习范型的时候,一定要了解这一点,你不能指望范型是万能的,要充分考虑到范型的局限性。下面我们来探


















讨一下范型的原理以及高级应用。首先给出一个范型类:
public class Pair<T>
{
public Pair() { first = null; second = null; }
public Pair(T first, T second) { this.first = first; this.second = second; }
public T getFirst() { return first; }
public T getSecond() { return second; }
public void setFirst(T newValue) { first = newValue; }
public void setSecond(T newValue) { second = newValue; }
private T first;
private T second;
}
我们看到,上述Pair类是一个容器类(我会多次强调,范型天生就是为了容器类的方便实现),容纳了2个数据,但这2个数据类型是不确定的,用范型T来表示。关于范型类如何使用,那是最基本的内容,在此就不讨论了。
下面我们来讨论一下Java中范型类的实现原理。在java中,范型是在编译器中实现的,而不是在虚拟机中实现的,虚拟机对范型一无所知。因此,编译器一定要把范型类修改为普通类,才能够在虚拟机中执行。在java中,这种技术称之为“擦除”,也就是用Object类型替换范型。上述代码经过擦除后就变成如下形式: Comparable来替换所有范型),当需要用到其他约束中定义的方法的时候,通过插入强制转化代码来实现。在此就不给出具体的例子了。
下面我们来看看最后一个知识点,定义一个函数,该函数接受一个范型类作为参数。首先让我们来看一个最简单的情况,参数是一个实例化的范型类: l.get(0)是合法的,因为参数是整型而不是范型;l.add(x)就不合法,因为add函数的参数是范型。但是定义一个范型方法还是有一定灵活性的,如果传入的数据也是范型,编译器还是认可的,因为范型对范型,类型安全是可以保证的。
浅析Java泛型的优点_计算机软件及应用_IT/计算机_专业资料。浅析Java泛型的优点 软件代码的可重用性和可靠性是程序开发中需要考虑的关键问题。Java 语 言的泛型是 ...
Java 中泛型的分析_互联网_IT/计算机_专业资料。Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。...
浅析Java泛型的使用_专业资料。泛型是Java SE 1.5的新特性,泛型的参数化类型是Java语言中类型安全的一次重要改进。但是,对于初次使用泛型的用户来说,泛型的某些方面...
浅谈Java语言的输入数据的... 6人阅读 2页 1.00...范型的概念、用法以及使用上的一些限制,并从Java范型...收藏此文档 免费 登录百度文库,专享文档复制特权,财富...
java泛型分析_IT/计算机_专业资料。java泛型分析泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以...
Java泛型解析(01):认识泛型_计算机软件及应用_IT/计算机_专业资料。重庆达渝仁...2014造价工程师案例分析... 2014造价工程师造价管理... 相关文档推荐 暂无相关...
Java泛型机制初探_计算机软件及应用_IT/计算机_专业资料。科技? 探索? 争鸣 Sc科ience&技Tech视nology界 Visio n Java 泛型机制初探 肖飞 冯小 亮科技...
泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持...收藏此文档 免费 下载此文档 大小:36.00KB 所需财富值:2 加入会员!获取文档...
关键词:java 反射 范型 1/2 相关文档推荐 java范型 14页 1财富值 L06_Java范型 15页 2财富值 java范型快速入门 3页 免费 Java范型浅析收藏 6页 1财富值 Ja...
java泛型总结java泛型总结隐藏>> 泛型总结篇: 1)泛型参数只能是类类型 例如:List...收藏此文档 免费 下载此文档 大小:24.50KB 所需财富值:1 加入会员!获取文档...

我要评论