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

    List 如果不使用泛型, 默认插入和取出都是 Object, 转型有风险

    List list = new ArrayList<>();
    list.add(123);
    // String str = (String) list.get(0); ---> java.lang.ClassCastException
    String str = String.valueOf(list.get(0));
    System.out.println(str);

    泛型集合

    List<String> list = new ArrayList<>();
    Map<String, Integer> map = new HashMap<>();

    泛型方法

      定义时不知道方法的具体返回类型, 使用时才知道

    public class Test {
        public static <T> T getResult(T t){
            return t;
        }
        public static void main(String[] args) {
            Test.getResult("123");
            Test.getResult(123);
        }
    }

    泛型接口

      封装一个 dao 层的工具类, 因为每个实体都会有这些基础方法, 通过继承减少代码工作量

    interface Dao<T>{
        int add(T t);
        int delete(String id);
        int update(T t);
        T select(String id);
    }

    泛型限制

      ? extends T  设置泛型上限, 是 T 或 T 的子类(最大是T). 只能取出不能添加(比如英雄联盟英雄有 AP 和 AD, 添加 AP 不满足 AD, 添加 AD 不满足 AP)

      ? super T   设置泛型下限, 是 T 或 T 的父类(最小是T), 可以添加, 取出来有风险(风险指的是取出来都是 Object, 转型可能出现 java.lang.ClassCastException)

      ?  通配符, 代表任意泛型, 只能取出不能添加, 取出来的是 Object

  • 相关阅读:
    杭州电acm理工大舞台版
    String.Split()功能
    android layout物业介绍
    讨厌OpenSSL
    Android Bundle类别
    多项式回归
    如何直接串行电缆以及空调制解调器串行电缆之间的区别?
    为什么写科技博客是情侣如此重要?
    SSH框架总结(帧分析+环境结构+示例源代码下载)
    RapidXml用法
  • 原文地址:https://www.cnblogs.com/huanggy/p/9950746.html
Copyright © 2011-2022 走看看