Tiger学习 之 撰写泛型<generic>

写一个支持泛型的类,真的很简单,呵呵,看代码
[quote]
public class Generic<E> {
[color=red] //private static List<E> staticList = new ArrayList<E>(); 不能这样写,编译出错,因为静态变量的实例共享的。[/color]
protected List<E> list;

public Generic(){
list = new ArrayList<E>();
}
}
[/quote]
这样就OK了,"E" 代表一个参数类型,可以用任何字母、单词来代替,不过一般用一个大写字母。

限制参数类型,也很简单,只要让你的类型变量继承特定的类,如:

[quote]
public class Generic<E extends Number> {
protected List<E> list;

public Generic(){
list = new ArrayList<E>();
}
}
[/quote]

如果这样调用
[quote]
Generic<String> generic = new Generic<String>();
[/quote]

编译器会提示错误...强制使用制定的参数化类型。

方法也一样,看下列代码:
[quote]
public List<? extends Number> setList(List <? extends Number> inList ) {
return inList;
}
[/quote]

也可以这样写
[quote]
public <A extends Number>List setList(List<A> inList ) {
return inList;
}
[/quote]
有点诡异...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值