Java泛型的使用

9 篇文章 0 订阅

平常,我们在使用ArrayList时,如果不定义泛型类型时,泛型类型实际上就是基类也就是Object:

在这里,由于我们没有定义泛型类型,编译器就会发出警告,要我们应该参数化对泛型类型列表<E>的引用

这个时候,编译器只能把<T>当作Object使用,这样写完全没有发挥泛型的优势。

当我们定义泛型类型<Integer>后,List<T>的泛型接口变为强类型<Integer>

在这个,我们定义了泛型类型是<Integer>,它就不会再报编译警告的提示了。

在我们编译的过程中,编译器如果能自动推断出泛型类型,就可以直接省略后面的泛型类型。

List<Integer> list = new ArrayLis<Integer> ();

编译器看到泛型类型List<Integer>就可以自动推断出后面的ArrayList<T>的泛型类型必须是ArrayList<Integer>,因此,可以把代码简写为:

// 可以省略后面的Integer,编译器可以自动推断泛型类型:

List<Integer> list = new ArrayList<>();

    除了ArrayList<T>使用了泛型,还可以在接口中使用泛型。

    首先,我们写一个泛型接口:

public interface TestOne<T> {

    public abstract void test(T t);

}

    然后写他的实现方法:

public class TestImpl<T> implements TestOne<T> {

    @Override

    public void test(T t) {

       System.out.println(t);  

}

}

接着,就是方法的调用了:

public static void main(String[] args) {

        TestImpl<String> testOne = new TestImpl<String>();

        testOne.test("泛型接口测试");

    }

    最后,让我们来看看结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值