zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java泛型
    Hibernate JPA实体继承的映射(一) 概述
    Hibernate JPA实体继承的映射(二) @MappedSuperclass
    rownum使用说明
    Javascript 中使用Json的四种途径
    JavaScript中使用JSON,即JS操作JSON总结
    Refresh Tokens: When to Use Them and How They Interact with JWTs
    Nginx 安装与启动
    JSON与js对象序列化
    js对象小结
  • 原文地址:https://www.cnblogs.com/jinghun/p/7899392.html
Copyright © 2011-2022 走看看