泛型的定义主要有以下两种:
在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)
在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(现在人们大多把这称作模板)
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
泛型只不过是java中的类型而已,继承自Type接口。
说说我的理解哈:
泛型的作用基本就是参数化数据类型,目的是为了安全,比如你在定义方法返回值的时候是list,然后你将list的数据类型泛型化为String,这样的话,你的方法体中如果return的list的元素如果有非String类型的话,程序编译就会报错,而不会等到运行时才报错,如果不使用泛型,要到运行时才能发现错误。编译时出错造成的损失要比运行时少很多。
泛型我个人理解就是先预定义一种虚拟的类型,在初始化的时候再指定他的实际类型。
比如Java类库在定义list的时候只是给定了一个泛型
泛
型(Generic type 或者 generics)是对
简单的理解,就是对类型的参数化,比如我们定义一个类属性或者实例属性时,往往要指定具体的类型,如Integer、Person等等,
但是如果使用了泛型,我们把这些具体的类型参数化,用一个广泛的可以表示所有类型的“类型”T来定义,那这个T就是泛型的表示。
可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。
因为 Map.get() 被定义为返回 Object,所以一般必须将 Map.get() 的结果强制类型转换为期望的类型,如下面的代码所示:
[java] view plain copy print?
Map m = new HashMap();
m.put("key", "value");
String s = (String) m.get("key");
比如一个list集合 ,没有指定类型时里面都是object对象, 如果你需要取出来就是想要的类型,而不需要强转,这时候就要用到泛型 ,,如 指定List