目录
  • 1.泛型方法的定义和语法
    • 1.1 定义
    • 1.2 语法
  • 2.泛型方法的使用
    • 2.1 普通泛型方法
    • 2.2 静态泛型方法
    • 2.3 泛型方法中的可变参数
  • 总结

    1.泛型方法的定义和语法

    1.1 定义

    泛型方法 是在 调用方法 的时候指明泛型的具体类型。

    【泛型方法 能够使方法独立于类的处理指定的类型。】

    1.2 语法

    修饰符 <T,E,…> 返回值类型 方法名(形参列表){
    。。。。。。
    }

    修饰符与返回值类型中间的 泛型标识符 <T,E,…>,是 泛型方法的标志,只有这种格式声明的方法才是泛型方法。

    泛型方法声明时的 泛型标识符 <T,E,…> 表示在方法可以使用声明的泛型类型。

    与泛型类相同,泛型标识符可以是任意类型,常见的如T,E,K,V 等。

    泛型方法可以声明为 static 的,并且与普通的静态方法是一样的。

    2.泛型方法的使用

    2.1 普通泛型方法

    • 声明
    /**
     * author : northcastle
     * createTime:2021/10/23
     * 泛型方法的定义
     */
    public class GenericMethod {
    
        //1.普通的泛型方法
        public <T> String commonMethod(String name,T t){
            String res = "";
            res += name +"-"+ t;
            System.out.println("普通泛型方法 : "+res);
            return res;
        }
    }
    
    • 调用
    /**
     * author : northcastle
     * createTime:2021/10/23
     */
    public class GenericMethodApplication {
        public static void main(String[] args) {
            //1.调用普通泛型方法
            GenericMethod genericMethod = new GenericMethod();
            String commonRes01 = genericMethod.commonMethod("001", "bb");
            System.out.println(commonRes01);
            String commonRes02 = genericMethod.commonMethod("002", 100);
            System.out.println(commonRes02);
            String commonRes03 = genericMethod.commonMethod("003", true);
            System.out.println(commonRes03);
            System.out.println("==================");
        }
    }
    
    
    • 运行结果

    普通泛型方法 : 001-bb
    001-bb
    普通泛型方法 : 002-100
    002-100
    普通泛型方法 : 003-true
    003-true
    ==================

    2.2 静态泛型方法

    • 声明
    /**
     * author : northcastle
     * createTime:2021/10/23
     * 泛型方法的定义
     */
    public class GenericMethod {
    
        //2.静态的泛型方法
        public static <T,E> String staticMethod(String name,T t,E e){
            String res = "";
            res += name +"-"+ t +"-"+ e;
            System.out.println("静态泛型方法 : "+res);
            return res;
        }
    }
    
    
    • 调用
    package com.northcastle.genericmethod;
    
    /**
     * author : northcastle
     * createTime:2021/10/23
     */
    public class GenericMethodApplication {
        public static void main(String[] args) {
         
            //2.调用静态泛型方法
            String staticRes01 = GenericMethod.staticMethod("001", "aa", "bb");
            System.out.println(staticRes01);
            String staticRes02 = GenericMethod.staticMethod("002", 100, 'c');
            System.out.println(staticRes02);
            String staticRes03 = GenericMethod.staticMethod("003", 12.05d, false);
            System.out.println(staticRes03);
            System.out.println("==================");
       
        }
    }
    
    • 运行结果

    静态泛型方法 : 001-aa-bb
    001-aa-bb
    静态泛型方法 : 002-100-c
    002-100-c
    静态泛型方法 : 003-12.05-false
    003-12.05-false
    ==================

    2.3 泛型方法中的可变参数

    • 声明
    /**
     * author : northcastle
     * createTime:2021/10/23
     * 泛型方法的定义
     */
    public class GenericMethod {
    
        //3.带可变参数的泛型方法
        public <A> void argsMethod(A ... args){
            for (A arg : args) {
                System.out.println(arg);
            }
        }
    }
    
    • 调用
    package com.northcastle.genericmethod;
    
    /**
     * author : northcastle
     * createTime:2021/10/23
     */
    public class GenericMethodApplication {
        public static void main(String[] args) {
         
            //3.调用可变参数的方法
            genericMethod.argsMethod(1,2,300,400,500,600);
            System.out.println("==================");
        }
    }
    
    • 运行结果

    1
    2
    300
    400
    500
    600
    ==================

    完成~

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。