Java泛型简介

  • 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。Generic有“类的,属性的”之意,在Java中代表泛型。泛型作为一种安全机制而产生。

  • 泛型的类或接口在取出对象时将不需要再进行向下类型转换,因为存储的时候就是该类型。

  • 泛型的使用让安全问题在编译时就报错而不是运行后抛出异常,这样便于程序员及时准确地发现问题。

- ? 表示不确定的java类型。
- T 表示java类型。
- K V 分别代表java键值中的Key Value。
- E 代表Element。
泛型类定义

class ClassName<T> 

class ClassName<?>

表示接收T以及T的子类
class ClassName<? extend T>

表示接收T以及T的父类
class ClassName<? super T>
泛型方法定义
使用泛型类的泛型参数来定义
例如,泛型类为:
class Tool<T>
则泛型方法可以定义为:
void show(T t)
自定义泛型类型
<E> void run(E e)
public class BirdGeneric<T> {

    public BirdGeneric(T t) {
        System.out.println(t);
    }

    public void fly(T t) {
        System.out.println("fly:" + t);
    }

    public <E> void run(E e) {
        System.out.println("run:" + e);
    }

    public static <R> void drink(R t) {
        System.out.println("drink:" + t);
    }
}
public class TestGeneric {

    public static void main(String[] args) {

        BirdGeneric<String> b1 = new BirdGeneric<>("test");
        b1.fly("b1-fly");
        BirdGeneric.drink(1);
        BirdGeneric<Integer> b2 = new BirdGeneric<>(11);
        b2.fly(22);
        b2.run("字符串");
        b2.run(11);
    }
}
  • 运行结果
test
fly:b1-fly
drink:1
11
fly:22
run:字符串
run:11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值