Java学习——泛型

一 定义

1. 泛型类定义

public class Generic<T> {//这里的T可以是E、K、V等字母
    private T t;

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }
}

2.泛型方法定义

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

3.泛型接口定义

public interface Generic<T>{}

4.类型通配符

为了表示各种泛型List的父类,可以使用类型通配符:
1.类型通配符<?>
2.List<?>:表示元素类型位置的List,其元素可以匹配任何的类型
3.这种带通配符的List仅仅代表它是各种泛型List的父类,不能把元素添加到其中
//      类型通配符上限 <? extends 类型>
        List<? extends Number> list5 = new ArrayList<Integer>();
//        类型通配符下限<? super 类型>
        List<? super Number> list7 = new ArrayList<Object>();

5.可变参数

//这里的可变参数其实是一个数组
public static int sum(int... a) {
       return 0;
}
//有其他参数时,可变参数放到最后
public static int sum(int b, int... a) {
       return 0;
}

6.可变参数的使用

List的asList(T... a)——不可以增删,可以改

//        public static <T> list<T> asList(T... a):返回指定数组支持的固定大小的列表
        List<String> list = Arrays.asList("zt1", "zt2", "zt3");
//        list.add("java");//UnsupportedOperationException
//        list.remove("zt1");//UnsupportedOperationException
        list.set(1,"java");//不改变大小就可以

List的of(E... elements)——增删改都不可以

Set的of(E... elements)——不含重复元素,增删改都不可以

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值