本文主要是介绍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]
有点诡异...
这篇关于Tiger学习 之 撰写泛型generic的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!