泛型例子:
1.数组
List<Integer> li = new ArrayList<Integer>();
li.put(new Integer(3));
Integer i = li.get(0);
2.图
Map<String, String> m = new HashMap<String, String>();
m.put("key", "blarg");
String s = m.get("key");
3.
谨记:
泛型不是协变的,例如下面的代码不是正确的
List<Integer> intList = new ArrayList<Integer>();
List<Number> numberList = intList; // invalid
使用泛型原因:
之所以声明泛型方法,一般是因为您想要在该方法的多个参数之间宣称一个类型约束。例如,下面代码中的ifThenElse()方法,根据它的第一个参数的布尔值,它将返回第二个或第三个参数:
public <T> T ifThenElse(boolean b, T first, T second) {
return b ? first : second;
}
注意,您可以调用ifThenElse(),而不用显式地告诉编译器,您想要T的什么值。编译器不必显式地被告知 T 将具有什么值;它只知道这些值都必须相同。编译器允许您调用下面的代码,因为编译器可以使用类型推理来推断出,替代T的String满足所有的类型约束:
String s = ifThenElse(b, "a", "b");
类似地,您可以调用:
Integer i = ifThenElse(b, new Integer(1), new Integer(2));
但是,编译器不允许下面的代码,因为没有类型会满足所需的类型约束:
String s = ifThenElse(b, "pi", new Float(3.14));
使用类型通配符:
void printList(List<?> l) {
for (Object o : l)
System.out.println(o);
}
分享到:
相关推荐
C#泛型的理解的示例,简单通俗易懂,可以配合博客文章来看下。
JVM如何理解Java泛型类.doc JVM如何理解Java泛型类.doc
多种编码泛型让你加深对泛型的理解!菜鸟必学必看。。。。
本人对泛型的一些理解,刚看就先了下。一些没有多余的时间去理解,所以没提到,时间仓促,只能借鉴
本人搜集的资料,看了这三篇,泛型彻底理解了。
深入理解java泛型,包括类名泛型的定义,方法泛型定义,泛型的返回
Java泛型的理解与等价实现.docx
泛型+泛型类+定义和使用+理解 - 本资源是一个泛型的理解,解释了泛型的意义和优点,以及如何用Java定义和使用泛型类,包括泛型方法,泛型接口,泛型继承,泛型限定等。
集合框架及泛型的介绍和基础理解,方便大家了解集合框架及泛型。
本代码资源的目标是帮助读者理解泛型的用法和优势,并通过实际的示例代码加深对泛型的掌握。读者可以通过运行这些示例代码来观察泛型的行为和效果,进一步加深对泛型的理解。 代码资源中会包含以下示例代码: 定义...
java泛型深入.pdf
深入浅出的解释了Java泛型编程方面的相关技术,适合初学者学习阅读。
主要讲解JDK5.0中的泛型和实现方法。
java 泛型的使用 详细讲解
精选java关于泛型的原理,应用和面试题,包含所有泛型考点。例如,泛型的概念,类型,实例化,容易混淆的用法。每一道题附上答案,方便理解考试要点。
理解C#中的泛型.doc
自己总结的java泛型的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者
有利于我们对java的理解,还有对Java泛型的理解,要精通java最好看一看
java中泛型说明与应用,有助于更好理解泛型的功能
本篇文档重点讲解了集合和泛型的使用,并提供了案例,内容细致易理解,欢迎大家来一起学习,如有不全的还望指正