范型的作用:类型安全检查,不用对集合中的对象进行手动类型转换。
1.Generics类
public class ArrayList<E> extends AbstractList<E> {
// details omitted
public void add(E element) {
// details omitted5
}
public Iterator<E> iterator() {
// details omitted8
}
}
用String绑定在E上,当我们用add(E element)方法向ArrayList中增加对象时, 那么就像下面的写法一样: public void add(String element);因为在ArrayList所有方法都会用String来替代E,无论是方法的参数还是返回值。
public class C1<T extends Number> { }
public class C2<T extends Person & Comparable> { }
第一个T变量必须继承Number,第二个T必须继承Person和实现Comparable
2.Generics方法
public <T extends Comparable> T max(T t1, T t2) {
if (t1.compareTo(t2) > 0)
return t1;
else return t2;
}
max方法的参数类型为单一的T类型,而T类型继承了Comparable,max的参数和返回值都有相同的超类。
Integer iresult = max(new Integer(100), new Integer(200));
String sresult = max("AA", "BB");
Number nresult = max(new Integer(100), "AAA"); // does not compile
3.通配符
(1)使用?通配符,匹配所用的类类型
void printCollection(Collection<?> c) {
for (Object e : c) {
System.out.println(e);
}
}
(2)有界通配符: <T extends Number>(上界,Number,Number及其子类) <T super Number>(下界Number及其父类)
分享到:
相关推荐
本例子说明演示了Java范型使用的动机、范型类的使用、范型方法的使用,以及范型的缺陷:类型擦除(type erasure).因为,现在Java的反射机制不能确定集合中的对象类型! 在实际应用中,如果能够灵活应用范型和反射...
消息传递范型与C/S范型双范型的主数据管理机制,陈晓云,邢乔金,本文针对主数据管理(MDM)存在的问题提出了一种基于消息传递机制范型与C/S范型双范型的主数据管理机制,当各个分系统的数据有所变化�
struts5 增加集合类型,使用范型 struts6 直接设置要进行类型转换的字段值 struts7 制作一个表单,对表单中的内容进行自定义验证。 struts8 全局性的验证xwork.default.invalid.fieldvalue={0} error struts9 ...
软件大量使用范型技术,抽象排课的数据及操作,代码极其精炼,功能强大。 软件使用复杂的数据结构,得到极高效率,特别是手工调课时能够瞬时检测出冲突、汇集所有关联元素的规则并评估。 软件基于引擎驱动界面的...
C++多范型设计,ISBN:9787508318240,作者:(美)James O.Coplien著;鄢爱兰,周辉等译;鄢爱兰译
分布式系统原理与范型第二版课后习题答案 分布式系统原理与范型第二版课后习题答案 分布式系统原理与范型第二版课后习题答案 分布式系统原理与范型第二版课后习题答案
《分布式系统原理与范型》第一版.中文版,影印版。
Java 范型Java 范型
java1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.doc
范型程序设计与 STL.pdf,大小约 300K。
《分布式系统原理与范型》是分布式系统中的经典教材,全书分为两部分:原理和范型。第一部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了...
第4章解释如何使用领域分析来找到应用领域中的抽象。第5章说明怎样将领域工程的原则用作对象范型的抽象技术的基础。第6章应用“分析”来描述“方案领域”的特征,并且将C++结构放到形成共同性和差异性基础的正式...