java学习记录08

li泛型

就是把类型当作参数了,之前的函数中的参数类型是指定的值是不确定的,泛型就是把类型也给参数化了。

个人看法:这个泛型就是确保输入的类型都相同

所谓泛型,就是允许在定义类,接口时通过一个‘标识’表示类中某个‘属性的类型’或是某个方法的‘返回值或参数的类型’。这个类型参数将在使用时确定。 

不用泛型

    public void Test1(){
        List list = new ArrayList();
        list.add(3);
        list.add(7);
        list.add(9);
        list.add(10);
        list.add(30);
        list.add(33);
        //problem without generics
        //1. type unsafe add() paramater is object means nican add
        //any types into list like:
        //list.add("hello");   it will casue error
        Iterator it = list.iterator();
        while(it.hasNext()){
            //2.need cast , so it is tedious
            Integer i = (Integer) it.next();
            int score = i;

            System.out.println(i);
        }

用泛型

    public void Test2(){
        List<Integer> list = new ArrayList<Integer>();

        list.add(88);
        list.add(88);
        list.add(00);
        list.add(88);
        list.add(76);
        //list.add("aa"); 在编译阶段就会报错无法通过

        Iterator<Integer> iterator = list.iterator();
        while(iterator.hasNext()){
            Integer i = iterator.next();  //list里面都是integer所以不用强转 方便了
            int score = i ;
            System.out.println(i);
        }
    }

在集合框架在声明接口和实现类时,如果没有使用泛型,如果没有使用泛型,则认为操作的是Object类型的数据

自定义泛型类或接口

格式

//泛型类
class A<T>{

}
//泛型接口
interface B<T>{

}

例子:

public class Order<T> {
    T t; //声明变量的类型为T
    int orderId;

    public Order() {
    }

    public Order(T t, int orderId) {
        this.t = t;
        this.orderId = orderId;
    }

    public T getT() {
        return t;
    }

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

继承

//不是泛型类
public class subOrder1 extends Order{
}
//不是泛型类
public class subOrder2 extends Order<String>{
}
//这个是泛型类
public class subOrder3<T> extends Order<T> {
}

//简单点说有不确定类型的就是泛型类

使用说明:

1.在声明完自定义泛型类后,可以在类的内部使用类的泛型。

2.创建自定义泛型类的对象时,没有指明泛型参数类型,则泛型对应类型按照Object处理,但不等价于Object

3.泛型指定中只能用引用数据类型

说明:

多个泛型参数用,隔开<E1,E2,E3>

不可以在静态中使用类的泛型

泛型方法可以根据需要声明为static的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值