不使用泛型
package test;
/*
* 測試
* */
public class testGeneric {
public static void main(String[] args) {
myCollection mc = new myCollection();
mc.set("碩鼠", 0);
mc.set(998, 1);
Integer a = (Integer)mc.get(1); //需要強制類型轉換
String b = (String)mc.get(0);
System.out.println(a);
System.out.println(b);
}
}
class myCollection{
Object[] objs = new Object[5];
public void set(Object obj, int index) {
objs[index] = obj;
}
public Object get(int index) {
return objs[index];
}
}
泛型類的聲明
class myCollection<E>{
Object[] es = new Object[5];
public void set(E e, int index) {
es[index] = e;
}
public E get(int index) {
return (E)es[index];
}
}
我們可以在類的聲明處增加泛型列表,如:<T,E,V>。
此處,字符可以是任何標識符,一般採用這3個字母。
泛型類的應用
package cn.yzy.collection;
/*
* 測試泛型
* */
public class testGeneric01 {
public static void main(String[] args) {
myCollection<String> mc = new myCollection<String>();
mc.set("碩鼠", 0);
mc.set("碩喵", 1);
String a = mc.get(1); //加了泛型,直接返回String類型,不用強制轉換;
String b = mc.get(0);
System.out.println(a);
System.out.println(b);
}
}
class myCollection<E>{
Object[] es = new Object[5];
public void set(E e, int index) {
es[index] = e;
}
public E get(int index) {
return (E)es[index];
}
}