public static <T> List<T> asList(T... a) 原型是怎么回事?(终于明白了!好文章!)

<T>是申明T为泛型,以区别于类名

即:<T> List<T> 中,第一个T是告诉大家,T不是类T.class,而是泛型T(如果只写List<T>则编译器以为是类T.class,如果不存在T.class类,则报错)。

public class A {
}
案例1. public static <A> List<A> asList(A... a);
案例2. public static List<A> asList(A... a);

案例1中A为“泛型A”,参数可以传入任何类型对象的数组;案例2则不是,其中A为“类A”,参数只能传入“类A”的对象的数组。

----------------------------------------------

补充一点:

案例1中使用泛型绝不是因为要使参数可以传入任意类型,如果仅仅是这样,直接用Object就可以了。用泛型是因为可以使该方法的返回值成为一个指定类型的集合,这样再次使用该集合的时候就有一个明确的类型了,这使的在将来该类型发生改变的时候编译器会报错,提醒你做相应的修改,而不是让问题暴露在运行阶段这是泛型的重要作用之一。

 


转载自:https://www.zhihu.com/question/31967519/answer/54097342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值