• 泛型


    泛型是什么

    泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,

    此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

    ArrayList list = new ArrayList();
            list.add("abc");
            list.add(123);

    集合在不指定泛型类型的情况下,可以添加任意引用类型。会导致意外的错误发生。也可以将运气期间的错误提前到编译器,如果指定泛型类型,那么不符合要求的类型编译不会通过。

    泛型类、泛型接口、泛型方法

    泛型类,泛型参数定义于类名之后,<> 中定义的是泛型的形参,多个形参之间逗号隔离

    public class GenericClass<T,E> {
        T t;
    
        public T getT() {
            return t;
        }
    
        public void setT(T t) {
            this.t = t;
        }
    }

    泛型接口,定义与泛型类相似

    public interface GenericInterface<K,V>{
        public abstract V  getValue(K k);
    }

    泛型方法,泛型参数定义在返回值类型之前

    public <T> void sleep(T t){
            System.out.println(t);
        }

    通配符、上下边界通配符

    泛型通配符: ?

    上边界通配符:<? super E>

    下边界通配符:<? extends E>

    通配符出现的原型是:集合没有协变,数组支持协变(多态)

    泛型通配符不用于定义对象,用于方法接收参数

    参考:https://www.cnblogs.com/yangming1996/p/9199557.html

  • 相关阅读:
    Centos5.8 安装 ImageMagick 6.8.9-3
    Centos5.8 安装 Redmine
    Apache配置中的ProxyPass 和 ProxyPassReverse
    Centos5.8 安装SVN并配置HTTP访问
    Centos5.8 安装 MySQL5.6.19
    Centos5.8 安装 PHP5.5 和 memcached
    CentOS RHEL 安装 Tomcat 7
    Centos5.8 iptables管理
    在SecureCRT中使用rz和sz传输文件
    在Mac mini上安装 ESXi 5.5
  • 原文地址:https://www.cnblogs.com/bytecodebuffer/p/11927804.html
Copyright © 2020-2023  润新知