JAVA高级特性(五)——泛型

一、泛型的概述

        —— 泛型的本质就是参数化类型,所用是将原来的具体的类型参数化,然后再使用和调用的时候传入具体的参数。

        这种参数类型,可以用整改类、方法、接口中,分别称为泛型类、泛型方法、泛型接口。

        泛型的定义格式: <类型>:指定一种类型的格式,这里的类型可以看成形参

                                      <类型1,类型2,.....>:指定的是多种类型的格式,之间用逗号隔开

           泛型的好处:把运行时期的问题提前到了编译期间;避免了强制类转换

二、泛型类的定义格式

      泛型类定义格式:修饰符   class   类名<类型>{}

                                  eg:public  class  Gneric <T>{}

           此处的T代表的是数据类型,即标识符:T,E,K,V,调用什么类型对象时,就会使用什么类型

 三、泛型方法

格式: 修饰符 <类型> 返回值类型 方法名(类型 变量名){}

           eg: public <T> void show (T t) { }

 四、泛型接口

格式:修饰符 interface 接口名 <类型>{}

eg:public interface Generic <T> { }

五、类型通配符

——为了表示各种泛型List的父类,可以受用类型通配符

               类型通配符 <?>

              1. List<?>:表示元素类型未知的list,它的元素可以匹配任何类型

               2. List<? extends 类型> :类型通配符的上限,表示该类型或其子类型。

               3. List<? super 类型>: 类型通配符的下限,表示该类型或其父类型

eg:List <?> list=new ArrayList<Object>();

        List<? extends Number> list=new ArrayList<Integer>();

         List<? super Number> list =new ArrayList<Object>();

 其中:父类—>子类:Object—Number—Integer

六、可变参数

            ——可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是i可变的了

格式:修饰符 返回值类型 方法名 (数据类型...变量名)

        eg:public static int sum(int...a){} 此处的a时一个数组,

        eg:public void sum(int b,int...a){} 此处多个参数时,应把可变参数放在最后。

可变参数的使用:

1、Arrays工具类中有一个静态方法

        public static<T> List   <T > asList (T...a) : 返回一个由指定数组支持的固定大小的列表 (可以有重复数)

注意:不能用add,remove 只能 用set

public class bb {
    public static void main(String[] args) {
        List<Integer> s = Arrays.asList(1, 2, 3, 4);
        s.set(1,5);
        System.out.println(s);//输出[1, 5, 3, 4]
        
    }
}

2、List 接口中 由一个静态方法 (jdk9才有这个功能)

        public static<E> List <E> of(E...elements): 返回一个包含任意数量元素的不可变列表(可以有重复数)

注意:不能增、删、减

3、Set接口中有一个静态方法: (jdk9才有这个功能)

        public static <E> Set <E> of (E...elements) :返回一个包含任意数量元素的不可变集合(不可以重复)

注意:不饿能增删减,也不能有重复元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值