泛型可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或则是某个方法的返回值及参数类型。这样在类声明或实例化时只要制定好需要的类型即可。


示例:声明泛型
public class Point<T> {
private T var;
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
}
上方代码中的Point类在声明时使用了"<T>"的形式,T表示此类型是由外部调用本类时指定的,这里使用任意字母均可。var属性的类型也是T,表示var这个属性的类型也是由外部来决定的,不是固定的。同理,setter方法中的参数类型以及getter方法中的返回值类型也由外部设置。
范例:使用POint类将var的类型设置成整数
public class GenericityDemo1 {
public static void main(String[] args) {
Point<Integer> p = new Point<>();
p.setVar(30);
System.out.println(p.getVar() * 2);
}
}
以上程序将Point类中的var属性设置成Integer类型,所以在声明及实例化对象时使用Point<Integer>。这样实际上上面的setter和getter方法就标称了以下的格式:
public Integer getVar(){
return var;
}
public void setVar(Integer var){
this.var = var;
}
上面代码只是对设置泛型之后的一种说明,可以发现一切操作都是按照数字的方式进行操作的。
提示:在泛型的指定中是无法指定基本数据类型的,必须设置成一个类,这样在设置一个数字时就必须使用包装类。
网友评论