码迷,mamicode.com
首页 > 编程语言 > 详细

Java 之泛型

时间:2014-06-21 21:02:54      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:style   class   code   java   http   tar   

两种快速理解泛型的描述

1. 数据类型是抽象的,这个类可以处理很多数据类型。里面的T在被实例化的时候可以用任意类型代替。

2.  泛型,想成一个桶,你装水或者装沙子都行,这个桶只负责提供装满水或者装满沙子的功能 。


官方解释:

泛型程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部份,那些部份在使用前必须作出指明。

泛型的定义主要有以下两种:

  1. 在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)
  2. 在程序编码中一些包含参数的。其参数可以代表类或对象等等。(现在人们大多把这称作模板)

不论使用那个定义,泛型的参数在真正使用泛型时都必须作出指明。

一些强类型程序语言支持泛型,其主要目的是加强类型安全及减少类转换的次数。

伪代码例子

类 例泛类<T> {
  值 : T
 
  设置值(新值 : T) {
    值 := 新值
  }
 
  获取值() : T {
    返回 值
  }
}
 
例方法1() {
  例对象 : 例泛类<整数型>
  例对象 := 新 例泛类<整数型>()
  例对象.设置值(5)
  输出整数(例对象.获取值())
}
 
例方法2() {
  例对象 : 例泛类<浮点数型>
  例对象 := 新 例泛类<浮点数型>()
  例对象.设置值(5.5)
  输出浮点数(例对象.获取值())
}

在这例子中,例泛类是一个泛型,而T是一个类型参数。在例泛类中没指明T的实际类型,只有例方法1()例方法2()在使用例泛类时才加以指明。

运行这例子的例方法1()将输出整数5,而运行例方法2()将输出浮点数5.5。

Java的泛型

Java泛型的参数只可以代表类,不能代表个别对象。由于Java泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。Java编译程序在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而加快。



Java 之泛型,布布扣,bubuko.com

Java 之泛型

标签:style   class   code   java   http   tar   

原文地址:http://blog.csdn.net/qqgirllianxin/article/details/32334639

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!