JAVA 泛型

2018-09-05  本文已影响0人  tanghuibook

1.泛型类

public class Test<T>{

         public T t;

         public T  test(){

            return (T) " ";

        }

}

2. 泛型方法

public class Test{

        public <T> T test(T t){

               List<Object> list=new ArrayList<>(); 

                     list.add(t);

                return (T)list;;  

         }

}

3. 泛型 实例方法带参数和不带参数 ,静态方法带参数和不带参数

public class Test{

        public T t;

         public T  test(){

                return (T) " ";

         }

        public static<T> void build (){

        }

public static<T> void build (T t){

        }

         public T test(T t){

               List list=new ArrayList<>(); 

                    list.add(t);

                return (T)list;;

           }

}

总结:    <T> 声明类型参数,当声明类型参数的时候才可以使用类型参数。

            泛型方法中,会采用自己所声明的类型参数,不会被泛型类的类型参数所干扰。

通配符:

     ?  不确定类型,和T 不同的是,T 在第一次传入类型的时候就将类型确认下来了,该类或者该方法的返回值的类型就确认为T了。而通配符?没 有将类型确定下来,每次无论传什么类型都可以。在拿取真实类型的时候,使用的是通配符?时候需要进行强转拿取,而T 不需要。

   ?extends  T    上界通配符 指定该类型的上限范围   传入的元素类型为T 或者为T的子类。这个时候就将这个类型的父类型确定了下来,那么这个类型的对象肯定会继承得到父类中可继承的方法和属性。

   ?super T       下界通配符 指定该类型的下限范围  传入的元素类型为T 或者为T的父类。这

上一篇下一篇

猜你喜欢

热点阅读