泛型接口
在JDK1.5之后,不仅可以声明泛型类,也可以声明泛型接口,声明泛型接口和声明泛型类的语法类似,也是在接口名称后面加上<T>, 格式如下:
[访问权限] interface 接口名称<泛型标识>{
}
泛型接口的两种实现方式
泛型接口定义完成之后,就要定义此接口的子类,定义泛型接口的子类有两种方式,一种是直接在子类后声明泛型,另一种是直接在子类实现的接口中明确地给出泛型类型。
package com.am.demo05;
/**
* @program: java高级-泛型
* @description:
* @author: 阿木
* @create: 2021-12-20 15:20
**/
public class Test05 {
public static void main(String[] args) {
USB<Integer> a=new Upan<>();
USB<String> b=new Mouse();
}
}
//泛型接口。
interface USB<T>{
public T show();
}
//在类创建时也使用该泛型
class Upan<T> implements USB<T>{
@Override
public T show() {
return null;
}
}
//在创建类时为泛型接口指定具体的数据类型。
class Mouse implements USB<String>{
@Override
public String show() {
return null;
}
}
泛型方法
前面学习的所有泛型操作都是将整个类进行泛型化,但同样也可以在类中定义泛型化的方法。==泛型方法的定义与其所在的类是否是泛型类是没有任何关系的==,所在的类可以是泛型类,也可以不是泛型类。
泛型方法的格式:
public <泛型标识> 泛型标识 方法名(){
}
public class Test {
public static void main(String[] args) {
String hello = fun("hello");
}
public static <T> T fun(T t){
return t;
}
}