J2SE5.0新特性之自动装箱解箱
晁岳攀 smallnest@163.com
作为一个程序员,一个java程序员,在使用Map和Collection的时候,经常回遇到下面的情况:
Map map;
…
String name = map.get(“name”);
…
这里从map对象取出的值,需要强制转换成我们所需要的类型,这种情况在jsp中读取属性值的时候也经常遇到。
耶稣,您为什么不直接给我转成我需要的类型呢?
通过范型编程和对java语言的改进,我们现在自动实现装箱和解箱操作。看下面的例子:
package com.kuaff.jdk5;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class Boxing
{
private Map<String,Date> map = new HashMap<String,Date>();
public Boxing()
{
map.put("date",new Date());
}
public void printDate()
{
Date date = map.get("date");
System.out.printf("当前时间:%s",date);
}
public static void main(String[] args)
{
Boxing box = new Boxing();
box.printDate();
}
}
我们声明了一个String,Date类型的Map,用英语讲应该是(Map of String,Date),这样我们可以直接装箱map.put("date",new Date());和解箱Date date = map.get("date");
这个功能可能作用不是很大,至少我们可以少敲一些字母,爱护一下我们的键盘。