视频链接: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>{
@Override
public String server(String s) {
System.out.println(s);
return s;
}
}
使用泛型接口方法2:在定义泛型接口的实现类时,不指定泛型接口的类型,而是把接口实现类也定义为泛型类,在接口实现类实例化时,再去指定泛型接口类型:
package com.yundait.Demo01;
public class MyInterfaceImpl3<T> implements MyInterface<T>{
@Override
public 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;
}
}
使用泛型方法: