集合框架10:泛型接口、泛型方法

发布于:2024-10-17 ⋅ 阅读:(12) ⋅ 点赞:(0)

视频链接:13.20 泛型方法_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://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;
    }
}

使用泛型方法: