Java学习——40、泛型

从版本5.0开始,Java支持包含数据类型作为参数的类定义。这些参数被称为泛型。

泛型通过为类、接口及方法设置类型参数,使一个类或一个方法可以在多种类型的对象上进行操作,从而减少数据类型转换,增加软件可复用性。

  • 泛型声明

用<>表示泛型,其声明的语法格式如下:

(1)带有泛型参数的类的声明

【修饰符】 class 类<类型参数列表> 【extends父类】【implements 接口列表】

(2)带有泛型参数的接口的声明

【public】 interface 类<类型参数列表> 【extends父接口列表】

接口的用法与类相同。

(3)带有泛型参数的方法的声明

【public】【static】<类型参数列表> 返回值类型方法(【参数列表】)

例:下例为一个带有泛型参数的类Sample

public class Sample<T> {

private T data;

public void set(T t) {

data=t;

}

public T getD() {

return data;

}

public void show() {

System.out.println(data);

}

}

一旦参数化该类,就可以像其他类一样被使用了。

如下所示:

public static void main(String args[]){

Sample<String> t=new Sample<String>();//参数为字符串类型

t.set("张熹熹");

t.show();

Sample<Integer> t1=new Sample<Integer>();//参数为整型,注不能用int,要用其包装类Integer

t1.set(454);

t1.show();

Sample<B> t2=new Sample<B>();//自定义的类也可以为参数,为方便理解,本例中B没有任何成员

}

class B{

}

其运行结果如图所示:

(0)

相关推荐

  • 如何使用 Java 泛型来避免 ClassCastException

    泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 一句话解释什么是泛型? 泛型是相关语言特性的集合,它允许类或方法对各种类型的对象进行操作,同时提供编译时类型安全性检查 ...

  • java学习——41、带有泛型参数的方法

    本篇接上篇:java学习--40.泛型 类中的方法有两种:静态方法和实例方法. 带有泛型参数的方法语法格式如下: [public][static] <类型参数列表>返回值类型 方法([参数 ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...

  • Java学习-126.2048代码

    本篇帖的是按钮的代码. 因为按钮比较多,包括菜单项的动作,为了区分,我用了两个内部类来实现这两部分代码. //本类是Game_2048类的内部类,用来实现上.下.左.右四个按钮,以及重新开始和退出游戏 ...

  • Java学习—125.2048代码

    本篇帖的是部分动作代码. 每个方法前都有注释说明本方法的功能. //随机选取一个位置,并填入数字2.如果此位置中已有数字,那么换一个位置. public void rule(){ x=ran.next ...

  • Java学习—124.2048代码

    游戏的主界面的代码在类game_2048中. 本类主要包括两个方面: 一是布局. 二是动作,按钮的动作. 其中,动作又有菜单动作,按钮动作.而按钮动作又有多方面,在下一篇的代码中会有注释说明. 本篇帖 ...

  • Java学习—123.2048小游戏

    好久又没出现了,还好后台也没几条信息,我也不至于很愧疚,只是人气不太旺盛,好尴尬 最近稍微有点忙,也是自己放松了一下,哈哈...... 抱歉一下,之前给我信息的各位亲,由于时间有点久,我就不一一回复了 ...