面向对象的一个重要目标就是对代码重用的支持。支持此目标的一个重要的机制就是泛型(generic)。如果除去对象的基本类型外,方法的实现是相同的,那么我们就可以使用泛 型来实现。java在java5以前的版本并不支持泛型的实现,泛型编程的实现是通过使用继承来完成的。下面我们来讨论一下集中基本的java泛型实现方式。
1.使用Object表示泛型
java中的基本思想是可以通过使用像Object这样适当的超类来实现泛型。
public class TestGeneric {
private ObjectstoreValue;
public Object getRead(){
returnstoreValue;
}
public void setValue(Object x){
storeValue = x;
}
public staticvoid main(String[] args) {
TestGeneric s = new TestGeneric();
//通过object超类实现set不同类型的值
s.setValue(4);
int x = (int) s.getRead();
System.out.println("x="+x);
}
}
2.基本类型的封装在我们视线算法的时候,常常遇到语言定型的问题:我们已有一种类型的对象,可是语言的语法却需要一种不同类型的对象。八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char;它们的封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character
3.使用接口类型表示泛型
public static Comparable findMax(Comparable[] attr){
int maxIndex =0;
for(int i=1;i<attr.length;i++){
if(attr[i].compareTo(attr[maxIndex])>0){
maxIndex = i;
}
}
return attr[maxIndex];
}
public staticvoid main(String[] args) {
TestGeneric s = new TestGeneric();
String [] st1 = {"joe","Bob","Bill","Zeke"};
System.out.println(s.findMax(st1));
}