zoukankan      html  css  js  c++  java
  • 泛型



    1. 什么是泛型

    泛型是一个不确定类型的特殊类型,它在使用时才明确类型,这样的好处:

    • 不用代码强转
    • 把运行问题提前到了编译时期

    2. 分类

    • 泛型类
    public class Object<T> {}
    
    • 泛型方法
    public void foo(T t) {}
    
    • 泛型接口
    public interface Inter<T> {}
    
    • 明确泛型
    public void foo(List<Sting> t) {}
    
    • 不明确泛型
    public void foo(T t) {}
    

    3. 操作


    现在有一个需求,把User类型放入集合中,然后遍历

    没有使用泛型

    ArrayList list = new ArrayList();
    
    User user1 = new User();
    User user2 = new User();
    
    list.add(User1);
    list.add(user2);
    //这里容易发生错误,如果不小心把非User类型放入集合呢?这样只有运行时才知道错误,eg:
    //list.add("一个非User类型");
    
    for(user : list){
        System.out.println(user);
    }
    

    使用了泛型

    ArrayList<User> list = new ArrayList();
    
    User user1 = new User();
    User user2 = new User();
    
    list.add(User1);
    list.add(user2);
    //下面直接报错,不能编译
    list.add("一个非User类型");
    
    //强调类型
    for(User user : list){
        System.out.println(users);
    }
    

    通配符及上下限:匹配任意类型

    public void foo(List<?> list){}
    
    public void foo(List<? extends String> list) {}
    
    public void foo(List<? super E> list) {}
    


  • 相关阅读:
    非科班学习路线
    非科班秋招面试总结
    招银网络Java面经
    派分糖果
    修改CentOS7网卡名称为传统名称eth0格式
    浅谈$* 和$@的区别
    Cobbler无人值守安装
    使用kickstart + pxe 部署无人值守安装
    CentOS 7 忘记root密码解决方法
    linux系统开机流程详解
  • 原文地址:https://www.cnblogs.com/Howlet/p/11992627.html
Copyright © 2011-2022 走看看