java中使用泛型类型的好处
2011-01-28 11:37
549 查看
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
Java语言引入泛型的好处是安全简单。
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
public class GenericsFoo {
private T x;
public GenericsFoo(T x) {
this.x = x;
}
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
}
public class GenericsFooDemo {
public static void main(String args[]){
GenericsFoo strFoo=new GenericsFoo("Hello Generics!");
GenericsFoo douFoo=new GenericsFoo(new Double("33"));
GenericsFoo
objFoo=new GenericsFoo
(new Object());
System.out.println("strFoo.getX="+strFoo.getX());
System.out.println("douFoo.getX="+douFoo.getX());
System.out.println("objFoo.getX="+objFoo.getX());
}
}
运行结果:
strFoo.getX=Hello Generics!
douFoo.getX=33.0
objFoo.getX=java.lang.Object@19821f
Java语言引入泛型的好处是安全简单。
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
public class GenericsFoo {
private T x;
public GenericsFoo(T x) {
this.x = x;
}
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
}
public class GenericsFooDemo {
public static void main(String args[]){
GenericsFoo strFoo=new GenericsFoo("Hello Generics!");
GenericsFoo douFoo=new GenericsFoo(new Double("33"));
GenericsFoo
objFoo=new GenericsFoo
(new Object());
System.out.println("strFoo.getX="+strFoo.getX());
System.out.println("douFoo.getX="+douFoo.getX());
System.out.println("objFoo.getX="+objFoo.getX());
}
}
运行结果:
strFoo.getX=Hello Generics!
douFoo.getX=33.0
objFoo.getX=java.lang.Object@19821f
相关文章推荐
- java使用泛型进行任意类型<引用类型>数组交换
- Java 泛型高级编程 ? 类型占位符的使用
- Java基础(21):泛型—泛型的定义、用法与类型通配符的使用方式
- Java 5.0 泛型之 使用泛型统一传入的参数类型
- Java基础之泛型——使用通配符类型参数(TryWildCard)
- java中使用反射往一个泛型是Integer类型的ArrayList中添加字符串,反射的案例1.
- 在 Java 的泛型类型中使用通配符
- 从头认识java-13.15 使用泛型时出现的问题(1)-泛型不能使用基础类型
- java 泛型之不要使用原生态类型
- 在 Java 的泛型类型中使用通配符
- 泛型--Java使用泛型编程提取类名上T类型
- 在JAVA中返回类型使用泛型T和Object有什么区别?
- 如何使用 Java 泛型映射不同的值类型
- 在 Java 的泛型类型中使用通配符
- java中的方法返回值使用泛型,实现灵活的返回值类型
- Java基础:泛型类型的子类及通配符的使用
- Java:泛型类型使用总结
- Java基础之泛型——使用泛型链表类型(TryGenericLinkedList)
- 在 Java 的泛型类型中使用通配符
- Java中的泛型是什么 ? 使用泛型的好处是什么?