java加强
来源:互联网 发布:钢筋下料软件 编辑:程序博客网 时间:2024/05/01 14:49
泛型的定义,在类名之后跟上<类型>,如ArrayList<String> collection = new ArrayList<String>();泛型内只能装指定类型的数据,如上例就只能装String类型的数据;
只有在JDK的api中,说明了一个类是泛型类型,该类才能使用泛型;使用泛型可以省去强制类型转换的麻烦;泛型是提供给编译器使用的,编译之后的字节码中不会在有泛型的类
型信息,所以可以利用反射的方法向编译后的泛型中添加不同类型的数据;
泛型的使用中,Class<?>y=Class<String>x //正确,Class<String>x=Class<?>y //错误
定义一个方法交换一个数组中两个元素的位置:
public <T> void swap(T [] array, int i,int j){
//<T>声明了一个任意类型的变量
T temp= array[i];
array[i]=array[j];
array[j]=temp;
}
写一个泛型方法,自动将Object类型的对象转换成其他类型:
public <T> T autoConvert(Object obj){
return (T) obj;
}
定义一个方法,可以将任意类型的数组中的所有元素填充为相应类型的某个对象:
public <T> void fillArray(T [] array,T obj){
for(int i=0;i<array.length;i++){
array[i]=obj;
}
}
采用自定义泛型方法的方式打印出任意参数化类型的集合中的所有内容:
public <T> void printCollection(Conlection<T> collection){
for(Object obj : collection){
System.out.println(obj);
}
}
若想让一个类的两个泛型方法中的泛型参数一致,则可以将该参数放在类上,如想在如下代码中让两个方法的<T>一致:
public class GenericDao{
public <T> void add(T x){
}
public <T> T findById(int id){
return null;
}
}
可以将代码改为:
public class GenericDao<T>{
public void add(T x){
}
public T findById(int id){
return null;
}
}
类中的静态方法不能使用泛型类型;
- java加强
- java加强
- java加强
- Java加强
- java基础加强--反射
- java基础加强
- java基础加强
- JAVA基础加强
- java基础加强1
- java基础加强
- java基础加强:
- Java基础加强 三
- Java基础加强 四
- java基础加强1
- java 基础加强 黑马
- java 基础加强 黑马
- java 基础加强 黑马
- java 基础加强 黑马
- 初学PHP的基本脉络(仅供初学PHP的同学参考)(三)
- 关于c#调用c++的dll遇到的问题
- 实现几秒后跳转到另一页面
- HBase Cluster replication
- 关于oauth的几篇文章
- java加强
- 初学PHP的基本脉络(仅供初学PHP的同学参考)(四)
- PADS转PROTEL的有效方法
- RabbitVCS
- sql server 2005 数据库 单表备份
- java 正则式,正则表达式,多行匹配,不以某某开头,不区分大小写,2个单元的或操作
- mysql日常命令一
- svn 常见报错
- 2011年各省gdp排名