泛型可以解决数据类型的安全性问题,它主要的原理,是在类声明的时候通过一个标识标识类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化的时候只要指定好需要的类型即可。
class Point<T>{
private T var; //var的类型由T决定 即由外包决定
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
}
public class T {
public static void main(String[] args) {
Point<String> p = new Point<String>(); //设置为String类型
Point<Integer> p2 = new Point<Integer>(); //设置为Integer类型
p.setVar("itmyhome");
//p2.setVar("hello"); //p2设置为Integer类型 如果传入String类型就错误
System.out.println(p.getVar());
}
}
构造方法中使用泛型
构造方法可以为类中的属性初始化,那么如果类中的属性通过泛型指定,而又需要通过构造设置属性内容的时候,那么构造方法的定义与之前并无不同,不需要像声明类那样指定泛型。
class Point<T>{
private T var; //var的类型由T决定 即由外包决定
public Point(T var){
this.var = var;
}
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
}
public class T {
public static void main(String[] args) {
Point<String> p = new Point<String>("itmyhome"); //设置为String类型
System.out.println(p.getVar());
}
}
设置多个泛型
class Point<K,V>{
private K key;
private V value;
publ