zoukankan      html  css  js  c++  java
  • [java]泛型的理解

    泛型概念理解

    list

    list类似数组的功能. 特点是可变长.

    单纯的下面使用方法, 是没什么问题

    ArrayList list = new ArrayList();
    list.add(10);
    list.add("m1");
    System.out.println(list);//[10, m1]
    for (Object o : list) {
        System.out.println(o);
    }
    

    如果做一些转换操作, 可能出现转换错误

            for (Object o : list) {
                Integer i = (Integer)o;//java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
                System.out.println(i); 
            }
    

    普通变量定义引出泛型

    容器里放值

            String name;
            name = "mao";//已规定了容器里
    

    容器里套容器,放值. 需要约束值得类型 怎么办?
    定义 容器>容器 的时候,就规定底层容器存的值得类型.

    ArrayList<String> arr = new ArrayList<>();
    

    这种说法就是泛型.

    泛型即可广泛,不确定的类型. 说的是外层容器可以存多种内部类型. 使用来规定内部类型该用什么类型.

    泛型继承

    泛型继承

    丢失,T为Object类型

    interface AI<T>{
        void show(T t);
    }
    class A implements AI {
        @Override
        public void show(Object o) {
            
        }
    
        public static void main(String[] args) {
    
        }
    }
    

    写死

    interface AI<T>{
        void show(T t);
    }
    class A implements AI<String> {
        @Override
        public void show(String s) {
            
        }
    
        public static void main(String[] args) {
    
        }
    }
    

    写活

    interface AI<T>{
        void show(T t);
    }
    class A<T> implements AI<T> {
        @Override
        public void show(T t) {
            
        }
    
        public static void main(String[] args) {
    
        }
    }
    
  • 相关阅读:
    promise请求数据(all方法)
    右键的点击事件
    微信小程序的接口调用封装
    微信小程序HTTP接口请求封装
    微信小程序得路由跳转
    管理系统得操作与解决思路
    HTTP协议
    动态语言概述
    AsynclAwait
    三种跨域解决方案
  • 原文地址:https://www.cnblogs.com/iiiiiher/p/12808086.html
Copyright © 2011-2022 走看看