java---泛型(generiac)介绍

1,jdk1.5以后出现的机制generic
2,泛型的书写格式<类型>
3,泛型出现的原因或者好处:
(1)提高了程序的安全性
(2)将运行期遇到的问题转移到了编译期
(3)省去了类型转换的麻烦.
注意:
泛型是在编译的时候,做的事情.真正程序执行的时候,可以没有泛型信息.(也就是说, .class中没有泛型 )

例如:
import java.util.ArrayList;
import java.util.ListIterator;

public class GenericDemo {
public static void main(String[] args){
ArrayList a1=new ArrayList();
a1.add(“jerry”);
a1.add(“susan”);
// a1.add(10);//编译错误,此时已经将ArrayList集合规范了,里面的
// 元素只能放String类型的元素

    //遍历集合
    /*此时请注意,集合是泛型,迭代器也是泛型,所以给ListIterator添加泛型<String>
    * */
    ListIterator <String>listIterator=a1.listIterator();
    while (listIterator.hasNext()){
        //泛型情况下,不再需要乡下类型转换
        String str=listIterator.next();
    }
}

}

4,泛型的应用:
A:泛型类
把泛型定义在类上
格式:public class 类名 <泛型类型1,…>
注意:泛型类型必须是引用类型
B:泛型方法
把泛型定义在方法上
格式:public <泛型类型> 返回类型 方法名(泛型类型)
C:泛型接口
把泛型定义在接口上
格式:public interface 接口名<泛型类型1,…>
注意:泛型接口,在被子类实现的时候,需要提供泛型类型
5,泛型高级(通配符)
A:任意类型
如果没有明确,那么就用Object以及任意的java类了
副作用:不能往里面存或者更新,只能往外取
B: ? extends E
向下限定,E及其子类
副作用:不能往里或者取,只能往外更新
C: ? super E
向上限定:E及其父类
副作用:不影响往里存,但往外取只能放在Object对象里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值