泛型

来源:互联网 发布:数据定义语言包括哪些 编辑:程序博客网 时间:2024/06/07 00:46

泛型

为什么要用泛型?

         早期的时候,我们使用Object来代表任意的类型。向上转型是没有任何问题的,但是在向下转型的时候其实隐含了类型转换的问题。 也就是说这样的程序其实并不是安全的。所以Java在JDK5后引入了泛型,提高程序的安全性。

什么是泛型?

         泛型:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。

         参数化类型,把类型当作参数一样的传递。

格式:

         <数据类型>

        此处的数据类型只能是引用类型。

 好处:

      A:把运行时期的问题提前到了编译期间

      B:避免了强制类型转换

      C:优化了程序设计,解决了黄色警告线

泛型在哪些地方使用呢?

   看API,如果类,接口,抽象类后面跟的有<E>就说要使用泛型。一般来说就是在集合中使用。

如何自定义泛型?

      泛型类:把泛型定义在类上

      例如:

    public class ObjectTool<T> {private T obj;public T getObj() {return obj;}public void setObj(T obj) {this.obj = obj;}}

      

       泛型接口:把泛型定义在接口上

       例如:

    public interface Inter<T> {public abstract void show(T t);    }
       实现类在实现接口的时候,有两种情况:

                   第一种情况:已经知道该是什么类型的了

    public class InterImpl implements Inter<String> {@Overridepublic void show(String t) {    System.out.println(t);} }

                 第二种情况:还不知道是什么类型的

     public class InterImpl<T> implements Inter<T> {@Overridepublic void show(T t) {System.out.println(t);}    }


       泛型方法:把泛型定义在方法上

       例如:

    public class ObjectTool {public <T> void show(T t) {System.out.println(t);}    }