`
yxwang0615
  • 浏览: 549785 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Java泛型理解示例

    博客分类:
  • java
阅读更多

泛型是Java 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种

参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

  Java语言引入泛型的好处是安全简单。

  在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化

”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行

的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐

患。

  泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用

率。


  泛型在使用中还有一些规则和限制:

  1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

  2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

  3、泛型的类型参数可以有多个。

 

DEMO1:未使用泛型

public class NoGeneric {
	private Object obj;
	
	public NoGeneric(Object o) {this.obj = o;}
	
	public Object getObj() {
		return obj;
	}
	public void setObj(Object obj) {
		this.obj = obj;
	}
	public void printType(){
		System.out.println("Obj的实际类型是" + this.obj.getClass().getName());
	}
	public static void main(String[] args) {
		NoGeneric gen = new NoGeneric(8);
		gen.printType();
		int i = (Integer)gen.getObj();
		System.out.println("value = " + i);
		
		System.out.println("----------------------------");
		NoGeneric gen1 = new NoGeneric("hello world");
		gen1.printType();
		String str = (String)gen1.getObj();
		System.out.println("value = " + str);
	}
}

 
输出:

Obj的实际类型是java.lang.Integer
value = 8
----------------------------
Obj的实际类型是java.lang.String
value = hello world

 

DEMO2:使用了泛型

 

public class Generic<T> {
	private T ob;
	
	public Generic(T ob) {
		this.ob = ob;
	}

	public T getOb() {
		return ob;
	}

	public void setOb(T ob) {
		this.ob = ob;
	}
	
	public void printType(){
		System.out.println("T的实际类型是" + this.ob.getClass().getName());
	}
	public static void main(String[] args) {
		Generic<Integer> gen = new Generic<Integer>(8);
		gen.printType();
		int i = gen.getOb();
		System.out.println("value = " + i);
		
		System.out.println("----------------------------");
		Generic<String> gen1 = new Generic<String>("hello world");
		gen1.printType();
		String str = (String)gen1.getOb();
		System.out.println("value = " + str);
		
	}

 输出:

T的实际类型是java.lang.Integer
value = 8
----------------------------
T的实际类型是java.lang.String
value = hello world

 

 

转自:http://www.zhujiangroad.com/html/soft/s10619.html

分享到:
评论

相关推荐

    Java语言 泛型讲解案例代码 (泛型类、泛型接口、泛型方法、无界及上下限通配符、泛型对协变和逆变的支持、类型擦除 ...)

    学习和理解Java泛型的基本概念和语法; 实际项目中需要使用泛型来增加类型安全性和重用性的开发任务。 目标: 本代码资源的目标是帮助读者理解泛型的用法和优势,并通过实际的示例代码加深对泛型的掌握。读者可以...

    Java让泛型实例化的方法

    主要介绍了Java让泛型实例化的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    Java泛型初学者之上、下界通配符的深入理解

    主要给大家介绍了关于Java泛型初学者之上、下界通配符的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者实用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    Java范例开发大全 (源程序)

     1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置是否成功 7  实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学...

    java 核心编程 java

    全书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。对于想将Java应用于实际项目中的程序员来说,《Java核心技术——基础知识》修订版是一本...

    JAVA 核心技术基础篇1

    全书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。 对于想将Java应用于实际项目中的程序员来说,《Java核心技术——基础知识》修订版是一本...

    新手学Java7编程(第5版)

    之后,《新手学java7编程(第5版)》介绍了java的一些高级特性,包括多线程程序设计和泛型。最后以对swing的介绍结束了全书。本教程节奏轻快,可以帮助读者快速掌握java程序设计。  《新手学java 7编程(第5版)》特色 ...

    Java核心技术_卷1(原书第8版)_01

    全书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。 本书针对Java SE6平台进行了全面更新,涵盖Java语言核心内容。大量精心设计代码示列。...

    java2核心技术第I卷.基础知识(中文PDF完整版)

    全书历经12年多的技术积累与提炼,对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量实用价值极高的示例,可以帮助读者充分理解Java语言以及Java类库的相关特性,使你快速升级到Java SE 6平台,从而提高编程...

    Java核心技术_第八版(英文原版).part1

    全书历经12年多的技术积累与提炼,对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量实用价值极高的示例,可以帮助读者充分理解Java语言以及Java类库的相关特性,使你快速升级到Java SE 6平台,从而提高编程...

    JAVA.2核心技术.卷I:基础知识(原书第7版).part1.rar

    全书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。 本资源共分4部分,分别为: JAVA.2核心技术.卷I:基础知识(原书第7版).part1.rar ...

    Java核心技术_第八版(英文原版).part2

    全书历经12年多的技术积累与提炼,对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量实用价值极高的示例,可以帮助读者充分理解Java语言以及Java类库的相关特性,使你快速升级到Java SE 6平台,从而提高编程...

    java核心技术

    , 《Java核心技术》中示例程序经过精心设计,不但具有实用价值,而, 且易于阅读理解,可以作为初学者自己编写程序的良好开端,也能够帮助, 程序员快速地了解Java SE 6的新特性,或迅速从其他语言转向Java语言。

    Java核心技术卷1:基础知识(第9版)(中文版)

    《Java核心技术卷1:基础知识(第8版)(英文版)》示例程序经过精心设计,不但具有实用价值,而且易于阅读理解,可以作为初学者自己编写程序的良好开端,也能够帮助程序员快速地了解Java SE 6的新特性,或迅速从其他语言...

    JAVA.2核心技术.卷I:基础知识(原书第7版).part2.rar

    全书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。 本资源共分4部分,分别为: JAVA.2核心技术.卷I:基础知识(原书第7版).part1.rar ...

    《Java核心技术 卷Ⅰ:基础知识(原书第8版)》(中文高清PDF) 第一部分(共四部分)

    本书示例程序经过精心地设计,不但具有实用价值,而且易阅读、易理解,可以作为读者自己编写程序的良好开端。  本书试图让读者快速地了解JavaSE6的新特性,并帮助读者有效地从Java早期版本升级到最新版本,或从一种...

    JAVA.2核心技术.卷I:基础知识(原书第7版).part4.rar

    全书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。 本资源共分4部分,分别为: JAVA.2核心技术.卷I:基础知识(原书第7版).part1.rar ...

    java核心技术(第8版)原书代码

    《Java核心技术》出版以来一直畅销不衰,深受读者青睐,每个新版本都尽可能快地跟上Java...全书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

Global site tag (gtag.js) - Google Analytics