Java
泛型是JDK1.5中添加的支持的,所以在JDK1.5之前的
版本是没有些功能。泛型就是在对象建立时不指明类中属性的具体类型,而是由外部在声明及实例化对象时指定类型。泛型可以解决数据类型
安全性问题。
一、泛型基本应用
泛弄定义:
【访问权限】 class 类名称<泛型类型标识1,泛型类型标识2..>{
【访问权限】 泛型类型标识符 变量名称;
【访问权限】 泛型类型标识符 方法名称(){ };
【访问权限】返回值类型声明 方法名称(泛型类型标识符 变量名称){ };
}
类名称<具体类> 对象名称 = new 类型名称<具体类>();
class Point<T>{
private T name ;
public T getName(){
return this.name;
}
public void setName(T name){
this.name = name;
}
}
public class Test1{
public static void main(String args[]){
Point<Integer> p = new Point<Integer>();
p.setName(24);
System.out.println(p.getName()); //输出 24
}
}
public class Test2{
public static void main(String args[]){
Point<String> p = new Point<String>();
p.setName("ITeye");
System.out.println(p.getName()); //输出"ITeye"
}
}
引用泛型类中具体类,不能指定其基本数据类型,必须设置成类,加入泛型避免了类转化
异常(ClassCastException)的发生,这样使程序的操作更加安全。
构造方法应用泛型
【访问权限】 构造方法(<泛型类型标识符> 变量名称){ } ;
指定多个泛型类型
class Point<K,v>{
private K key ;
private V value ;
public K getKey(){
return this.key ;
}
public void SetKey(K key){
this.key = key ;
}
public V getValue(){
return this.value ;
}
public void setValue(V value){
this.value = value ;
}
};
public class Test{
public static void main(String args){
Point<String,Integer> p = new Point<String,Integer>();
p.setKey("ITeye") ;
p.setValue(40) ;
System.out.println(p.getKey()+"--"+p.getValue());
}
}
引用
在实例化对象时,如不指定类型,这样使用此类时,就会在编译时出现不安全的警告信息,但是并不会影响程序的运行。如没有指定类型,则统一使用Object进行接收。