ArrayList<E> 这个E是什么?
这个E是在定义的时候用的,称为类型变量或类型参数
ArrayList<String>称作参数化类型
ArrayList<String>中的String称作类型参数的实例或者叫实际类型参数
这里的<>读做 typeof
printMethod(List<?> list);//这里是什么意思
意思是:这个集合是一个任意定义了泛型的结合...?是通配符,匹配任意的一种泛型
但是如果我这样写可以吗?
printMethod(List<?> list){ //这种事通配符方案
list.add(1);
list.size();
}
<T> void printMethod(List<T> list,T o){ //这种是泛型方法
list.add(o); //这个可以用了
list.size();
}
注意,上面是编译不会通过的,因为根本就不知道list到底是那种泛型,所以编译器是不会让你在这个list里面乱加东西的,但是list.size()可以用,因为这个方法与类型无关
List<? extends Number> 这是限定通配符,限定通配符的上边界。。。
List<? super Number>这是限定通配符的下边界,也就是?要超过Number,最低只能是Number
定义泛型:
public <T> void save(T bean){
} //注意前面的<T>是对某种特定类型的泛型的声明,所以前面尖括号里面可以写任意字符
写成下面是一样的
public <A> void save(A bean){}
1.编写一个方法,把Object类型转换为其他类型
public static <T> T convert(Object o){ //这种是泛型方法,不是通配符方案
return (T)obj;
}
使用:
Object o = "aaa"
String x = convert(o);
注意这里类型转换时根据左边需要赋值给谁就转换成谁
2.定义一个方法,把任意参数类型的集合中的数据安全的复制到相应类型的数组中。
public <T> void copy(Collection<T> dest ,T src){//这里的T有传播性,由Collection<T> 确定
}
public <T> void copy(T dest ,T src){ //这两个T会取他们共同的父类
}
public <T> T copy(T dest ,T src){ //这两个T由返回值确定}
泛型类型。。。。。。使得方法有统一的泛型
public class GenericDao<E>{
public void add(E x){
}
public E findById(int id){
}
public void delete(E o){}
public void delete(int id){}
public Set<E> findByConditions(String where){
return null;
}
}
注意:静态方法不能用泛型类型,但是可以用泛型方法
分享到:
相关推荐
这些示例将展示如何创建、操作和遍历集合,以及如何使用泛型来确保类型安全。例如,你可以看到如何添加元素、删除元素、查找元素,以及如何实现集合排序和比较。 2. **I/O**:Java的I/O(输入/输出)库提供了处理...
J2SE 1.5引入了泛型,这是一种类型安全机制,允许在编译时检查类型。泛型可以防止在集合操作中出现ClassCastException,并提高了代码的可读性和可维护性。例如,ArrayList表示一个只包含字符串的列表,编译器会确保...
10. **泛型**:学习如何使用泛型来提高代码的类型安全性和重用性。 11. **枚举和注解**:理解枚举类型及其在程序中的应用,以及注解的作用和自定义注解的创建。 12. **设计模式**:如单例、工厂、装饰器、代理等...
到了2003的年末,J2SE1.5的beta版本就将发布了。这次发布和现在已经发布的J2SE1.4的两个更新1.4.1和1.4.2都如2003年的JavaOne大会预期的发布。如果你没有参加这次大会,或者想重新回顾一下,那么下面就是这次大会...
定义泛型类 .....注解(Annotation) ..........概述 ..........注解的定义/使用/解析 .....I/O_体系 ..........认识IO ..........Java中的IO .....I/O_BIO ..........I/O流对象与使用 ..........文件相关类的使用 ......
Java J2SE(Java Standard Edition)是Java平台的核心部分,主要针对桌面应用和服务器端开发。J2SE提供了丰富的API和工具,使得开发者能够构建健壮、可移植、多线程和安全的软件。本压缩包文件“java-j2se.rar_j2se...
10. **泛型**: - 提高代码类型安全性,减少类型转换,提供更好的编译期错误检查。 这些只是Java-J2SE学习笔记中的一部分重点内容,实际的学习过程中还需要对每个知识点进行深入理解和实践,以确保对Java编程有...
泛型 泛型 泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型 泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型
Java标准版(J2SE,Java 2 Platform Standard Edition)是Java开发平台的一个核心组件,主要面向桌面应用和服务器端应用程序开发。它包含了Java运行环境、基础类库以及开发工具,是Java程序员进行编程的基础。在J2SE...
Java 2 Platform, Standard Edition(J2SE)是Java平台的核心组成部分,主要用于桌面应用程序的开发。J2SE基础知识是每一个Java开发者必须掌握的核心技能。以下将详细阐述J2SE中的关键概念和技术。 1. **Java语言...
Java小笔记——深入理解J2SE中的泛型与封装 在Java编程中,J2SE(Java Standard Edition)是核心部分,提供了丰富的API和功能。本文将重点讨论J2SE中的一个重要特性——泛型(Generics),以及封装的概念。泛型是...
- **泛型**:泛型的作用、限制和通配符的使用。 5. **多线程** - **Thread类与Runnable接口**:创建线程的两种方式。 - **线程状态**:新建、运行、阻塞、等待、结束等状态的理解。 - **同步机制**:...
Java Standard Edition(J2SE)是Java平台的核心部分,它为开发和运行桌面应用程序、服务器应用程序和嵌入式系统提供了基础。J2SE包含了Java语言的语法、类库以及运行时环境,使得开发者能够创建可移植性强、安全性...
- **J2SE 5.0**:重命名了版本号,从1.5开始,引入了泛型、枚举、可变参数、自动装箱/拆箱以及注解等语言特性。 - **Java SE 6**:加强了GUI、数据库连接池、Web服务支持,并引入了JSR 166(并发工具包)。 - **...
泛型则是Java在J2SE 5.0版本引入的一个特性,极大地提高了代码的类型安全性和可读性。下面我们将深入探讨这两个主题。 首先,集合框架包括接口(如List、Set和Queue)和实现这些接口的具体类(如ArrayList、...
9. **泛型**:理解泛型的用途,如增加代码类型安全性和重用性,以及在类、接口和方法中的泛型使用。 10. **枚举与注解**:掌握枚举类型的应用,以及自定义注解及其处理器。 11. **JNI(Java Native Interface)**:...
- 对象数组和泛型:存储和操作对象的数组,泛型提供类型安全。 - List、Set和Map接口:ArrayList、LinkedList、HashSet、HashMap等实现类的使用。 - 集合的操作:添加、删除、查找元素,迭代器的使用。 4. **...
3. J2SE 1.5 (Java 5.0) API: 重大更新,引入了泛型、枚举类型、可变参数、自动装箱与拆箱、增强的for循环(foreach)、注解(Annotation)等新特性。还引入了类型安全的集合接口,如List,Set和Map, V>,提高了代码...