Java中的泛型

1 篇文章 0 订阅

泛型

1.概恋

泛型本质本质是参数化类型,泛型提供了编译时类型的安全检测机制,该机制允许程序在编译时检测非法的类型。

2.泛型标记和泛型限定:E 、T 、K 、V 、N 、?

如下表所示:

序号泛型标记说明
1E-Element在集合中使用,表示在集合中存放的元素
2T-Type表示Java类,包括基础的类和我们自定义的类
3K-Key表示键,比如Map中的key
4V-Value表示值
5N-Number表示数值类型
6表示不确定的Java类型

类型通配符符使用 “ ?” 表示所有具体的参数类型,例如 List<?> 在逻辑上是 List 、List等所有 List<具体类型实参> 的父类。

在使用泛型的时候,若希望将类的继承关系加入泛型应用中,就需要对泛型做限定,具体的泛型限定有对泛型限定有对泛型上线的限定和对泛型下线的限定。

1.对泛型上限的限定:<? extends T>

在Java中使用通配符 " ? " 和 " extends " 关键字指定泛型的上限,具体用法为 <? extends T> ,它表示该通配符所代表的类型是 T 类的子类或者接口 T 的子接口。

2.对泛型下限的限定:<? super T>

在Java中,使用通配符 “ ?” 和 “ super ” 关键字指定泛型的下限,具体用法为 <? super T>,它表示该通配符所代表的类型是 T 类型的父类或者父接口。

3.泛型的方法

泛型的方法指将方法的参数类型定义为泛型,以便在调用时接收不同的类型的参数。在方法的内部根据传递给泛型方法的不同参数类型执行不同的处理方法。

public static void main(String args){
    generalMethod("1" , 2 , new Worker());
}

//定义泛型方法 generalMethod ,printArray
public static <T> void generalMethod(T... inputArray){
    for (T element : inputArray){
        if (element instanceof Integer){
             System.out.println("处理 Integer 类型数据中...");
        }else if (element instanceof String){
            System.out.println("处理 String 类型数据中...");
        }else if (element instanceof Double){
            System.out.println("处理 Double 类型数据中...");
        }else if (element instanceof Float){
            System.out.println("处理 Float 类型数据中...");
        }else if (element instanceof Long){
            System.out.println("处理 Long 类型数据中...");
        }else if (element instanceof Boolean){
            System.out.println("处理 Boolean 类型数据中...");
        }else if (element instanceof Date){
            System.out.println("处理 Date 类型数据中...");
        }
        else if (element instanceof Wroker){
            System.out.println("处理 Wroker 类型数据中...");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值