什么是Java泛型
什么是Java泛型
什么是泛型呢?
我们首先写一个最简单的泛型类来说明:
- public class Generics<T> { //T是type的简称,可以使用任何名称代替
- private T o; //泛型成员变量
- public Generics(T o){
- this.o=o;
- }
- public T getObject() {
- return o;
- }
- public void setObject(T o) {
- this.o = o;
- }
- public String getType() {
- return o.getClass().getName();
- }
- }
这个泛型类包括自己的构造函数,以及get、set方法和一个getType方法。
我们可以这样使用这个类:
- public class GenericsDemo{
- public static void main(String[] args){
- Generics<Integer> intObject=new Generics<Integer>(1);
- System.out.println("the value of intObject is " + intObject.getObject());
- System.out.println("the type of intObject is " + intObject.getType());
- Generics<String> stringObject=new Generics<String>("hi, generics!");
- System.out.println("the value of stringObjectis " + stringObject.getObject());
- System.out.println("the type of stringObjectis " + stringObject.getType());
- }
- }
很明显,使用java泛型,我们可以省掉强制类型转换。编译器会保留参数的类型信息,执行类型检查,执行类型转换操作。因此开发人员不需要自己确保类型转换的安全性,而把这个交给编译器去做。
评论暂时关闭