集合框架10:泛型接口、泛型方法
视频链接:13.20 泛型方法_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?spm_id_from=333.788.videopod.episodes&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5&p=20
1. 泛型接口
创建一个泛型接口:
package com.yundait.Demo01;/*** 泛型接口* 语法:接口名<T>* 注意:接口中不能创建静态泛型常量;* @param <T>*/
public interface MyInterface<T> {String name = "张三"; //创建静态常量name//泛型作为接口中抽象方法的返回值类型和参数类型T server(T t);
}
使用泛型接口方法1:在定义泛型接口实现类时,指定泛型接口的类型:
package com.yundait.Demo01;public class MyInterfaceImpl implements MyInterface<String>{@Overridepublic String server(String s) {System.out.println(s);return s;}
}
使用泛型接口方法2:在定义泛型接口的实现类时,不指定泛型接口的类型,而是把接口实现类也定义为泛型类,在接口实现类实例化时,再去指定泛型接口类型:
package com.yundait.Demo01;public class MyInterfaceImpl3<T> implements MyInterface<T>{@Overridepublic T server(T t) {System.out.println(t);return t;}
}
测试:
package com.yundait.Demo01;public class TestGeneric {//使用泛型类创建对象public static void main(String[] args) {MyInterfaceImpl myInterface = new MyInterfaceImpl();myInterface.server("刘德华");MyInterfaceImpl3<String> stringMyInterfaceImpl3 = new MyInterfaceImpl3<>();stringMyInterfaceImpl3.server("$$$$$$$$$$$$$");}
}
2.泛型方法
回顾一下方法的定义:
修饰符 返回值类型 方法名(参数类型 参数名){方法体;return 返回值;}
创建一个泛型方法:
package com.yundait.Demo01;/****泛型方法*语法:<T> 返回值类型*/
public class MyGenericMethod {public <T> T show(T t){System.out.println("泛型方法:" + t);return t;}
}
使用泛型方法: