• 泛型的使用讲解


    import java.util.List;
    
    /**
     * 背景: 平常定义变量:String name,这里变化的是值,类型是不会变,指定为String,如果需要类型也能变化呢?此时泛型就登场了:
     * 泛型:
     * T name:此时类型是变化的,如可以是String ,也可以是其他任意的类型变量,如StringBuffer,因此泛型其实就是变化的类型
     * 泛型的使用:用在类上和用在方法上,不管使用在哪里,都必须要先声明,声明的方式<T>,尖括号里面的值是随便定的,写成<E>也可以;
     * 泛型声明在类上:此时类里面的成员变量和方法都可以直接使用它,如下面的A<T>,这叫做泛型的声明,private  T t,这是泛型的使用,类比普通变量声明,要先声明后使用
     * 如:String name;是声明变量,后面就可以使用name="xiaoming"
     * 泛型声明在方法上:如下面的sayHi方法,void前面的<E> 是声明泛型,参数E e是使用泛型,如果没有<E>声明就会报错,如下写法:
     * public void say(E e){} 这里将会报E为不知道的类型,编译都不会通过
     * 在集合中使用泛型变量时,可以使用泛型的父类List<? super E> e,或者泛型的子类List<? extends E> e
     */
    
    
    public class A<T>  {
    
       private T t;
    
       private String name;
    
       public <E> void sayHi(E e){
    
       }
       public <E> void swim(List<? extends E> e){
    
       }
       public <E> void fly(List<? super E> e){
    
       }
    
        public T getT() {
            return t;
        }
    
        public void setT(T t) {
            this.t = t;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

  • 相关阅读:
    C语言strcasecmp()函数:判断字符串是否相等(忽略大小写)
    C语言之strrchr函数
    【Android】adb connect 手机的两种方式
    python web框架介绍对比
    sublime text 3 + python配置,完整搭建及常用插件安装
    Sublime text 3 快捷键:
    sublime text3 插件CTags
    sublime text 3 并列显示
    python 保存csv文件
    pandas 读取文件
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/10842884.html
Copyright © 2020-2023  润新知