- /**
- *
为该类定义泛型,可以是一个或多个 - * 定义的泛型可以在类中作为:
- * 类变量类型: T data
- * 类方法的入参以及返回类型 public void setData(T data),public T getData();次数以set,get方法举例,类的其他方法也是可以的
- * @param
- * E:表示 Element,即元素,运用在集合中
- * K:表示 Key,即键
- * V:表示 Value,即值
- * N:表示 Number,即数值类型
- * T:表示 Type,即 Java 类型
- * ? :表示不确定的 Java 类型
- */
- public class Generic
{ -
- private String code;
-
- private String message;
-
- private T data;
-
-
- public String getCode() {
- return code;
- }
-
- public void setCode(String code) {
- this.code = code;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- /**
- * 可以理解成泛型类的方法,但不能称之为泛型方法
- * 因为这里类定义了泛型
所以该类中的方法可以使用泛型T - * @return
- */
- public T getData() {
- return data;
- }
-
- /**
- * 可以理解成泛型类的方法,但不能称之为泛型方法
- * @return
- */
- public void setData(T data) {
- this.data = data;
- }
-
-
- /**
- * 此方法可以定义泛型类中,也可以定义在普通类中,即泛型方法不一定定义在泛型类中
- * 即为为该方法定义了两个泛型U,R 定义的泛型可以作为方法的入参类型和返回类型,以及方法中的变量类型
- * 入参和返回类型可以是泛型或者具体的数据类型;例如testGeneric1,testGeneric2
- * @param u
- * @param r
- * @param
- * @param
- */
- public void testGeneric(U u,R r){
- // do something
- }
-
- /**
- * 返回类型为具体类型
- * @param u
- * @param r
- * @param
- * @param
- */
- public extends Number> String testGeneric1(U u,R r){
- // do something
- return r.toString();
- }
-
- /**
- * 返回类型为泛型
- * @param u
- * @param r
- * @param
- * @param
- */
- public extends Number> R testGeneric2(U u,R r){
- // do something
- return r;
- }
- }
- import java.util.List;
-
- /**
- * 定义泛型I,R
- * 在该接口中可以使用泛型I,R作为接口方法的入参类型和返回值类型
- * @param
- * @param
- */
- public interface GenericService {
-
- List
test1(I i); - }
- /**
- * 此方法可以定义泛型类中,也可以定义在普通类中,即泛型方法不一定定义在泛型类中
- * 即为为该方法定义了两个泛型U,R 定义的泛型可以作为方法的入参类型和返回类型,以及方法中的变量类型
- * 入参和返回类型可以是泛型或者具体的数据类型;例如testGeneric1,testGeneric2
- * @param u
- * @param r
- * @param
- * @param
- */
- public void testGeneric(U u,R r){
- // do something
- }