泛型

泛型可以提高程序安全性
让编译器挡住非法信息
例如:容器可以根据泛型阻止其他类的进入
同时返回Object对象的方法会根据泛型确定返回类型 不在需要强制转换

泛型只对编译器起作用,在编译结束后泛型的类型就被去掉--->去类型化

使用反射可以跳过编译器

ArrayList<E> 泛型
E 类型参数
ArrayList<Integer> 参数化的泛型
<> 读音 typeof
ArrayList原始类型

泛型可以兼容旧的方法与数据类型

泛型不考虑继承关系

泛型通配符 ?
collection<?>  方法的使用时会参考泛型,使用通配符时,参考泛型的方法将不可用

? extends 类型   继承了该类型的子类的通配符
? super 类型     该类型的父类通配符

jsp迭代
<c:forEach item="${map}" var="entry">
${entry.key}:${entry.value}
</c>

测试结果: 为什么我的自己排序了??????


方法使用泛型
public <T extends 类型&类型> void 方法()
定义时放在 返回值之前

泛型<T>可以根据返回值 和参数指定,
泛型确定的有传染性
或者取最小的共同父类

DAO -->Data access object  

类泛型定义在类名后

静态方法不能使用泛型

*****************************
s:25
q:23
l:22
z:20
*****************************

 


import java.util.HashMap.*;
import java.util.*;

public class HashMapTest {
 
 public static void main(String[] args){
  HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
  hashMap.put("z", 20);
  hashMap.put("q", 23);
  hashMap.put("s", 25);
  hashMap.put("l", 22);
  
  Set<Map.Entry<String, Integer>>  entrySet = hashMap.entrySet();
  
  for(Map.Entry<String, Integer> entry : entrySet){
   System.out.println(entry.getKey() + ":" + entry.getValue());
  }  
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值