Java: new一个map时,加泛型标志<x,y>

我看到这么一句

private static Map<String, User> instance = Collections.synchronizedMap(new HashMap());
其中new HashMap()没有写成 new HashMap<String, User>()
这是为何?

jdk 1.5 以前集合是没有泛型概念的,所以当时的类型约束纯粹自己写,然后强转。如下: // 忽略添加map的部分.

  Map map = new HashMap(); 
  for(object obj : map){ 
  		if(obj instanceof String){ 
	  		String str = (String) obj;
	  		Sysout(str); 
  		} 
   } 

其实目前的java泛型还是用的这部分代码,只不过不用你写了,而是由编译器偷偷的在编译前替换一下再编译。不相信可以写个泛型代码,编译之后在反编译,你就看得到了。 之所以这么做就是为了兼容以前不写泛型的代码,让他们也还可以正常运行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值