学习effective java-23泛型之在新代码中不要使用原生类型
来源:互联网 发布:javascript模块化开发 编辑:程序博客网 时间:2024/06/06 20:58
该知识点是自己从书籍中学习的笔记。
从jdk1.5版本开始,java就引入了泛型。在没有泛型之前,从集合中取出的对象都必须经过转型,才能够达到使用。在jdk1.5之前,如果往集合中插入了不同类型的对象的话,那么在遍历的时候就可能引起运行时转型失败。
泛型定义:A class or interface whose declaration has one or more type parameters is a generic class or interface [JLS, 8.1.2, 9.1.2].就是说一个类或者接口拥有一或者多种类型参数的声明就是泛型类或者接口。
以下代码会编译出错:
public class Test1 {
public static void main(String[] args) {
List<String> strings = new ArrayList<String>();
unsafeAdd(strings, new String("42"));
String s = strings.get(0); // Compiler
}
static void unsafeAdd(List<String> list, Object o) {
list.add(o);
}
}//The method add(String) in the type List<String> is not applicable for the arguments (Object)
当不知道具体类型的时候,可以使用“?”号来表示通用的参数类型,如:
static int numElementsInCommon(Set<?> s1, Set<?> s2){
。。。}
总之,如果使用jdk1.5版本的话,那么就使用泛型。Set<Object>表示一个参数化类型,并且该Set里面只能够放Object类型的元素;Set<?>是一个通配符,表示Set中仅仅包含了一些未知类型的对象;Set是一个原生类型,没有指定泛型。前两者都是安全的,但是后者不是安全的。
- 学习effective java-23泛型之在新代码中不要使用原生类型
- effective java(23) 之请不要在新代码中使用原生态类型
- Effective Java 第 23 条: 请不要在新代码中使用原生态类型
- 第二十三条:不要在新代码中使用原生类型
- 《Effective java》读书记录-第23条-请不要在新代码中使用原生态类型
- 请不要在新代码中使用原生态类型。
- 第23条:请不要在新代码中使用原生态类型
- 泛型第23条:请不要在新代码中使用原生态类型
- 第23条(第五章 泛型):不要在新代码中使用原生态类型
- 第23条:请不要在新代码中使用原生态类型
- 第23条 泛型——请不要在新代码中使用原生态类型
- (23):请不要在新代码中使用原生态类型
- [读书笔记][Effective Java]不要在精确计算中使用float和double类型
- Effective Java学习--第23条:不要使用原生态类型
- java 泛型之不要使用原生态类型
- 为啥在java中不要使用char类型
- Effective C++学习笔记之“尽量使用初始化而不要在构造函数里赋值”
- Effective Java 学习笔记之泛型
- XraTreeList的常用方法
- boost字符串处理(上)
- netbeans配置dspace
- Windows下使用skipfish
- boost字符串处理(下)
- 学习effective java-23泛型之在新代码中不要使用原生类型
- 文本框的值三级联动
- DEV xtrareports
- Android平台下实现一个进程管理器
- XCode 4.2 集成svn client
- What Is a Glue Code?
- MFC 快捷键
- tbb学习笔记(二):原子操作
- VBScript:Color Constants