什么是泛型?简单记录一下自己理解的泛型。

来源:互联网 发布:java解压war包命令 编辑:程序博客网 时间:2024/05/23 11:28

今天简单梳理一下自己理解的泛型,以便以后查阅。

泛型是JDK1.5引入的新特性,也是最重要的一个特性
泛型可以在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的
泛型的原理就是“类型的参数化”,即把类型看做参数。

也就是说把所要操作的数据类型看做参数,就像方法的形式参数是运行时传递的值的占位符一样。

简单的说,类型变量扮演的角色就如同一个参数,它提供给编译器用来类型检查的信息
泛型可以提高代码的拓展性和重要性。

总结:所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型,泛型变成是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用。

泛型的应用场景:是当需要创建多个对象,这些对象的逻辑都一样,但是数据类型不一样,这个时候可以创建一个泛型类。这样就可以避免大量的代码冗余。

举个例子,比如需要一个对象有一个属性,如果这个属性你想得到整型,又想得到字符串。又想得到bool类型,那么最简单的方法当然是创建三个类,然后new两三个对象出来。   或者用强制类型转换,但是强制类型转换有时候也会出错的。

但是用了泛型可以这样做。  

public class GenericDemo1 {public static void main(String[] args) {// TODO Auto-generated method stub//创建一个泛型类对象GenericClass<String> gen1=new  GenericClass<String>("chenhao");System.out.println(gen1.getData());GenericClass<Integer> gen2=new GenericClass<Integer>(1);System.out.println(gen11.getData()); } }class GenericClass<T>{//创建一个泛型类 private T data; public Animal(){} public Animal(T data){ this.data=data; } public void setData(T data){ this.data=data; } public T getData(){ return data; } }


这样只需要定义一个泛型类,既能传入字符串 又能传入整型。 这个结果打印出来的就是  chenhao  1