jdk1.5新特性之泛型总结2
2013-04-22 15:55
351 查看
泛型除了可以用在变量上,还可以用在方法上和类上.
自定义泛型一般用<T>或者<E>来声明.
1.用在方法上.在返回值类型前声明.
例如:
//将一个Object对象转换成指定的类型.
public static <T>T convert(Object obj)
{
return (T)obj;
}
实际使用时,指定的是什么类型 则T就是什么类型.
2.用在类上
当一个类中有多个方法都用到了泛型.如果都定义成泛型方法,则这些泛型间没有关联.
Class Dao
{
public <T>void add(T t){}
public <T>T findByID(int ID)
{
return null;
}
}//这两个方法中的T没有关联,有可能 出现"添加了一只猫,但是查找到一只狗"的情况.
为了统一,这时可以将泛型定义在类上 Class Dao<T>,这样类中所有的方法的泛型T都是同一个类型.
在Class Dao<T>中如果有静态方法要使用泛型,只能在该方法上单独定义.
注意:
当一个变量被声明为泛型时,只能被实例变量、方法和内部类调用,而不能被静态变量和静态方法调用。因为静态成员是被所有参数化的类所共享的,所以静态成员不应该有类级别的类型参数。
3.关于泛型的类型推断.
这个非常复杂.只能记住下面两个特殊的例子了...
//将数组中数据拷贝到集合中
public <T>void(Vector<T> v,T[] t){} 如果Vector<String> 则T的类型就是String 数组必须也是String[] 这是泛型的传播..
//讲数组中的数据拷贝到数组中
public <T>void(T[] t1,T[] t2){} 如果t1和t2的类型不一致,则向上取他们的最小父类,比如Integer和Float 则T的类型是Number
自定义泛型一般用<T>或者<E>来声明.
1.用在方法上.在返回值类型前声明.
例如:
//将一个Object对象转换成指定的类型.
public static <T>T convert(Object obj)
{
return (T)obj;
}
实际使用时,指定的是什么类型 则T就是什么类型.
2.用在类上
当一个类中有多个方法都用到了泛型.如果都定义成泛型方法,则这些泛型间没有关联.
Class Dao
{
public <T>void add(T t){}
public <T>T findByID(int ID)
{
return null;
}
}//这两个方法中的T没有关联,有可能 出现"添加了一只猫,但是查找到一只狗"的情况.
为了统一,这时可以将泛型定义在类上 Class Dao<T>,这样类中所有的方法的泛型T都是同一个类型.
在Class Dao<T>中如果有静态方法要使用泛型,只能在该方法上单独定义.
注意:
当一个变量被声明为泛型时,只能被实例变量、方法和内部类调用,而不能被静态变量和静态方法调用。因为静态成员是被所有参数化的类所共享的,所以静态成员不应该有类级别的类型参数。
3.关于泛型的类型推断.
这个非常复杂.只能记住下面两个特殊的例子了...
//将数组中数据拷贝到集合中
public <T>void(Vector<T> v,T[] t){} 如果Vector<String> 则T的类型就是String 数组必须也是String[] 这是泛型的传播..
//讲数组中的数据拷贝到数组中
public <T>void(T[] t1,T[] t2){} 如果t1和t2的类型不一致,则向上取他们的最小父类,比如Integer和Float 则T的类型是Number
相关文章推荐
- jdk1.5新特性之泛型总结1
- 黑马程序员-----JDK1.5新特性-泛型总结*
- jdk1.5新特性——泛型的学习总结
- jdk1.5新特性之泛型(三)
- 黑马程序员_集合2_(HashSet、TreeSet、JDK1.5新特性泛型)
- Jdk1.5中的新特性 泛型 (详细版)
- 黑马程序员-----程序员之路_____JDK1.5新特性之泛型
- jdk1.5,jdk6,jdk7,jdk8的特性总结
- ——JDK1.5新特性之泛型
- jdk1.5新特性(三)_泛型
- JDK1.5新特性---注解、枚举、泛型
- JDK1.5新特性,泛型
- 黑马程序员_JDK1.5新特性_总结
- java -- 总结JDK1.5的常用新特性
- JDK1.5新特性总结
- JDK1.5新特性总结
- JDK1.5-1.6-1.7之新特性总结
- 总结jdk1.5~1.7的特性
- Java基础18--泛型--工具类--JDK1.5新特性
- 【黑马程序员】jdk1.5的新特性------------泛型加强