黑马程序员——泛型

来源:互联网 发布:阿里云域名交易市场 编辑:程序博客网 时间:2024/05/22 04:56



 

 ------- android培训、java培训、期待与您交流! ----------

——————————————————————————————————————————————— 


|——JDk 1.5  以后的另一个新特性:

foreach语句
for(类型 变量 :Collection集合或者数组)
 
Map集合不能直接使用foreach语句
可以转换为Set 集合
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(2, "zhangsan");
map.put(4, "lisi");
map.put(7, "xiaoqi");
map.put(5, "wangwu");

将所有的key存到Set集合中
——————————————————————————————
for(Integer key :map.keySet()){
String value = map.get(key);
System.out.println(key+":"+value);
}

将键值对的映射关系都存储到Set集合中
——————————————————————————————————————————————————————————————
for(Map.Entry<Integer, String> me :map.entrySet()){
Integer key = me.getKey();
String value = me.getValue();
System.out.println(key+":"+value);
}
 
|--可变参数的函数
int add(int x1,int x2... args){  //这里args其实就是数组,自动将这些元素封装成了数组。
for(int x:args){
sum+=x;
}
}
 
|--静态导入:
静态导入,其实导入的是类内部的静态成员
import static java.util.Collections.*;
 
26、 泛型  1.5 以后出现的
|——好处:
将运行时期的问题ClassCastException转到了编译时期。
避免了强制转换的麻烦。

|--泛型技术是给编译器使用的。确保了类型的安全。
|--擦除
运行时,会将泛型去掉,生成的class文件中是没有泛型的,这个称为泛型的擦除
是为了兼容运行的类加载器
|---泛型补偿
在运行时,会得到对象的字节码制动类型转换。不需要强制转换
 
|——泛型的自定义:
方法上自定义泛型 //放在返回值类型的前边
_____________________________________________________
public <T> void show(T obj){
System.out.println("show:"+ obj.toString());
}

类上自定义泛型
——————————————————————————————————————————————————————————
class Tools<Q>{
public Q getObj() {
return q;
}


public void setObj(Q q) {
this.q = q;
}


private Q q;
 
}

|---当方法静态时,不能访问类上定义的泛型,如果静态方法使用泛型,
只能讲泛型定义在方法上
如果Tools类中有这么一个方法
public static void method(Q obj){...}  //这样是错误的 
|---定义泛型后,只能访问Object类的方法
public <T> void show(T obj){
System.out.println("show:"+ obj.toString());  //这里的obj只能访问Object类的方法。不能访问其他类的特有方法
}


|——泛型接口:将泛型定义在接口上
interface A<Q>{
void show(Q obj);
}
class B<T> implements A<Q>{
void show(T obj){};
}

|——泛型的通配符   ?
集合框架中泛型 Collection<?>
|——泛型限定
|--上限 ? extends E  //传进来的只能是E或者E的子类
对集合中的元素进行存储的 时候使用
|--下限 ? super E//传进来的只能是E或者E的父类
对集合中的元素进行取出的时候使用
比较器(可以使用父类比较器)

 

 ------- android培训、java培训、期待与您交流! ----------

——————————————————————————————————————————————— 

原创粉丝点击