请直接看原文:
JAVA泛型-泛型方法的定义和使用-CSDN博客
--------------------------------------------------------------------------------------------------------------------------------
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
==================