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) {}
    


  • 相关阅读:
    hive参数配置及任务优化
    python基础篇_002_基础数据类型
    python基础篇_001_初识Python
    Java 修饰符
    Java 构造代码块
    Java static 关键字
    Java 继承
    37 自定义异常
    36 异常
    35 异常
  • 原文地址:https://www.cnblogs.com/Howlet/p/11992627.html
Copyright © 2011-2022 走看看