JOKI.4以前类型不明确:
装入集合的类型都被当作Object对待,从而失去自己的实际类型。
从集合中取出时往往需要转型,效率低,容易产生错误。
解决办法:
定义集合的时候同时定义集合中对象的类型
public static void main(String[] args) {
List<String> c = new ArrayList<String>();
c.add("aaa");
c.add("bbb");
c.add("ccc");
for(int i=0; i<c.size(); i++) {
String s = c.get(i);
System.out.println(s);
}
这里就用到了泛型
,泛型使用后如果传入的是非<String>类型的值就会提示出错误。
泛型有这么多的好处,那我们该什么时候使用泛型呢?
答案非常简单:在javaAPI文档中只要是在类的后面有<*>这个标记的都是可以使用的。
例1:
例2:
此时的 E标记的意义是:再返回的时候可以泛型类型的数据。此时的
E 是传入的什么类型的数据,返回的就是什么数据类型。
class MyName implements Comparable<MyName> {
int age;
public int compareTo(MyName mn) {
if(this.age > mn.age) return 1;
else if(this.age < mn.age) return -1;
else return 0;
}
}
这时只能传入<MyName>的类型了。