集团站切换校区

验证码已发送,请查收短信

图标

学习文章

当前位置:首页 > >学习文章 > >

{java培训}泛型的一个简单例子

发布时间: 2017-06-16 10:50:24

泛型在Java中经常用到。泛型在本质上是指类型参数化。所谓类型参数化,是指用来声明数据的类型本身,也是可以改变的,它由实际参数来决定。在一般情况下,实际参数决定了形式参数的值。而类型参数化,则是实际参数的类型决定了形式参数的类型。举个简单的例子。方法max()要求返回两个参数中较大的那个,可以写成:

Integer max(Integer a, Integer b){

return a>b?a:b;

}

这样编写代码当然没有问题。不过,如果需要比较的不是Integer类型,而是Double或是Float类型,那么就需要另外再写max()方法。参数有多少种类型,就要写多少个max()方法。但是无论怎么改变参数的类型,实际上max()方法体内部的代码并不需要改变。如果有一种机制,能够在编写max()方法时,不必确定参数a和b的数据类型,而等到调用的时候再来确定这两个参数的数据类型,那么只需要编写一个max()就可以了,这将大大降低程序员编程的工作量。

在泛型出现之前,Java的程序员可以采用一种变通的办法:将参数的类型均声明为Object类型。由于Object类是所有类的父类,所以它可以指向任何类对象,但这样做不能保证类型安全。

泛型则弥补了上述做法所缺乏的类型安全,也简化了过程,不必显示地在Object与实际操作的数据类型之间进行强制转换。通过泛型,所有的强制类型转换都是自动和隐式的。因此,泛型扩展了重复使用代码的能力,而且既安全又简单。

///声明一个泛型类

public class Generic {

T ob; // ob的类型是T,现在不能具体确定它的类型,需要到创建对象时才能确定

Generic(T o) {

ob = o;

}

// 这个方法的返回类型也是T

T getOb() {

return ob;

}

// 显示T的类型

void showType() {

System.out.println("Type of T is:" + ob.getClass().getName());

}

}

public class demoGeneric {

public static void main(String args[]) {

// 声明一个Integer类型的Generic变量

Generic iobj;

// 创建一个Integer类型的Generic对象

iobj = new Generic(100);

// 输出它的一些信息

iobj.showType();

int k = iobj.getOb();

System.out.println("k=" + k);

// 声明一个String类型的Generic变量

Generic sobj;

// 创建一个Double类型的Generic对象

sobj = new Generic("Hello");

// 输出它的一些信息

sobj.showType();

String s = sobj.getOb();

System.out.println("s=" + s);

}

}

  

上一篇: {java培训}复数运算

下一篇: {java培训}归并排序

十年老品牌
QQ咨询:450959328 微信咨询:togogozhong 咨询电话:020-38289118 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!