泛型在接口中使用

使用格式
interface 接口名<自定义无意义占位符> {
接口中的泛型不可以用于成员变量中,由于接口的成员变量默认是final修饰的,定义时必须初始化,但是当前的泛型的类型是不明确的,无法对成员变量进行初始化。
接口中的泛型只可以用于成员方法。
}

遵从带有自定义泛型的接口的类,一种是在遵从的过程中明确告知泛型的具体类型,一种是在创建类对象时明确泛型的具体类型。

class TypeA<T> implements A<String>
正确
接口的泛型明确接口中的方法,使用泛型对应的具体数据类型,类声明的泛型用于自定义约束自己类内的方法

class TypeA<E> implements A<T>
错误
接口中的泛型没有明确自己的数据类型,也无法通过类创建对象明确泛型对应的具体数据类型,无法编译。

package com.reviewedu;

/**
 * @author HZF
 */

interface  A<T> {
    void test(T t);
}

class TypeA<T> implements A<T> {

    @Override
    public void test(T t) {
        System.out.println("可以自定义类和接口的泛型具体类型:" + t);
    }
}

class TypeB<T> implements A<String> {

    @Override
    public void test(String s) {
        System.out.println(s);
    }
}

public class Demo3 {
    public static void main(String[] args) {
        TypeA<Integer> typeA = new TypeA<Integer>();
        typeA.test(10);

        TypeB typeB = new TypeB();
        typeB.test("已经确定泛型类型");
    }
}

可以自定义类和接口的泛型具体类型:10
已经确定泛型类型

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值