• Java 泛型方法、泛型类、通配符、通配符上下限


    泛型方法

    泛型方法定义规则:

    • 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。
    • 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
    • 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
    • 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)

    泛型方法举例:

    public <T> T gp(T t){
    return t;
    }
    public <T> void gp2(T t){
    System.out.println(t);
    }
    public <T,E> boolean gp3(T t,E e){
    return t.equals(e);
    }

    泛型类

     泛型类定义规则:

    • 在类名后面添加类型参数声明部分,泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开

    泛型类举例:

    public class Main {
    
        public static void main(String[] args) {
            GP<String> gp=new GP<String>();
            gp.setT("gp");
            System.out.println(gp.equals("gp"));
        }
    }
    
    class GP<T>{
         private T t;
         public void setT(T t){
             this.t=t;
         }
         public boolean tt(T t1){
             return t.equals(t1);
         }
    }

    仿照List使用就可以了。

    类型通配符

    •  类型通配符一般是使用?代替具体的类型参数。例如 List<?> 在逻辑上是List<String>,List<Integer> 等所有List<具体类型实参>的父类。

    通配符上限 <? extends T>

    • <? extends T>表示该通配符所代表的类型是T和T类型的子类。比如:List<? extends Number>

    通配符下限 <? super T>

    • <? super T>表示该通配符所代表的类型是T和T类型的父类。比如:List<? super Number>

    菜鸟教程:http://www.runoob.com/java/java-generics.html

  • 相关阅读:
    Yslow的A评级指南
    Sqlserver 数据库自动备份
    他们如果什么也没有做,那将是我来世上的最大遗憾。
    规划人生
    安装程序无法复制一个或多个文件。特定错误码是0x4b8。
    Sqlserver数据库的恢复
    Android新手之旅(3) 信息的输出
    PDF开发控件
    通过快盘搭建自己的svn服务器
    Android新手之旅(2) 新手问题
  • 原文地址:https://www.cnblogs.com/jinghun/p/7899392.html
Copyright © 2020-2023  润新知