zoukankan      html  css  js  c++  java
  • Java 泛型

    一:泛型分三类:
      1 类上的泛型、2接口上的泛型、3 泛型方法

    二:什么时候用?
      如果你写两套代码,处理流程几乎一模一样,只是针对的数据的类型不一样,就可以考虑“只写一遍”,而不是两遍

    三:泛型方法
      在返回值前加上符号<T> 表示该方法是泛型方法

      public static <T> List<T> genericMethod(T param,String sql){
        System.out.println("run sql...");
        List<T> list = new ArrayList<T>();
        return list;
      }

    四:泛型类
      public class MyList<T>{
        private T t;
        public void add(T t){
          system.out.println("put element into MyList,this element is type of T");
        }
        public T getT(){
          return t;
        }
      }
      泛型类如果将类型传入进来后,就没必要再声明泛型方法了(个人理解),因为类型参数已经传入

    五:泛型的边界
      List<? extends T>   表示? 的上限是类型T,可以接收任意T的子类(包括T)的List
      List<? super T>    表示? 的下限是类型T,可以接收任意T的父类(包括T) 的List

    六:泛型擦除
      在编译后,所有关于泛型的信息会被擦除掉,所以在方法重载时,类似下面这样情况,是会编译出错的,擦除后,是同一个方法
      public List<Integer> method()
      public List<String> method()

  • 相关阅读:
    c++vector(入门级)
    端口扫描(TCP)
    推荐安全程序员的书单(系统、网络、安全等)
    My latest news(--2016.12.31)
    HTML+JS+DOM【选项卡自动切换】
    20170916考试总结
    [Usaco2014 Mar]Sabotage
    [SHOI2014]概率充电器
    [Usaco2010 Dec]Exercise 奶牛健美操
    [JZOJ4687]奇袭
  • 原文地址:https://www.cnblogs.com/leonkobe/p/4277477.html
Copyright © 2011-2022 走看看