package com.collection.genericity;
import org.junit.Test;
/*
* 在方法上自定义泛型
*/
public class Demo2 {
/*
需求:定义一个方法可以接收任意类型的参数,而且返回值类型必须要和实参的类型一致;
自定义泛型:自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量;
方法上自定义泛型:
修饰符 <声明自定义泛型> 返回值类型为自定义泛型 函数名(自定义泛型参数){}
注意:在泛型中不能使用基本数据类型,如果需要使用基本数据类型,那么就使用基本数据类型对应的包装类型;
基本数据类型 包装类型(类)
byte Byte
short Short
int Integer(*)
long Long
float Fload
double Double
boolean Boolean
char Character(*)
方法上自定义泛型的注意事项:
1、在方法上自定义泛型,这个泛型的具体数据类型是在调用该方法时通过传入的实参类型确定的;
2、自定义泛型只要符和标识符的命名规范即可;但是一般都习惯使用一个大写字母表示(T 或者 E);
*/
// 在方法上自定义泛型; <T>:声明自定义泛型T;
public <T> T getData(T t){
return t;
}
@Test
public void test(){
String str = getData("abc");
Integer data = getData(123); // 返回值类型为int的包装类型Integer;
}
}