一直以为只有Java5之后才有了自动装箱拆箱,没想到在Java5之前就已经存在了AutoBox,只不过,没有让我们使用而已。哈哈,狡猾的Sun.
public class TestBean {
private int intValue;
/**
* 属性intValue的Getter方法。
*
* 创建日期:2005-9-22
* @return int
*/
public int getIntValue() {
return intValue;
}
/**
* 属性intValue的setter方法。
*
* 创建日期:2005-9-22
* @param intValue int
*/
public void setIntValue(int intValue) {
this.intValue = intValue;
}
}
private int intValue;
/**
* 属性intValue的Getter方法。
*
* 创建日期:2005-9-22
* @return int
*/
public int getIntValue() {
return intValue;
}
/**
* 属性intValue的setter方法。
*
* 创建日期:2005-9-22
* @param intValue int
*/
public void setIntValue(int intValue) {
this.intValue = intValue;
}
}
public class TestMain {
public static void main(String[] args) throws Exception{
Method setMethod = TestBean.class.getDeclaredMethod("setIntValue", new Class[]{int.class});
Method getMethod = TestBean.class.getDeclaredMethod("getIntValue", new Class[0]);
TestBean bean = new TestBean();
setMethod.invoke(bean, new Object[]{new Integer(5)});
Object obj = getMethod.invoke(bean, new Object[0]);
System.out.println("掉用Get方法得回来的类型" + obj.getClass());
System.out.println("得到的值" + obj);
}
}
public static void main(String[] args) throws Exception{
Method setMethod = TestBean.class.getDeclaredMethod("setIntValue", new Class[]{int.class});
Method getMethod = TestBean.class.getDeclaredMethod("getIntValue", new Class[0]);
TestBean bean = new TestBean();
setMethod.invoke(bean, new Object[]{new Integer(5)});
Object obj = getMethod.invoke(bean, new Object[0]);
System.out.println("掉用Get方法得回来的类型" + obj.getClass());
System.out.println("得到的值" + obj);
}
}
本文介绍了一个有趣的发现,在Java5之前实际上已经存在自动装箱和拆箱的功能,尽管这一特性并未开放给开发者直接使用。通过一个示例程序展示了如何在早期Java版本中实现Integer对象到int基本类型的自动转换。

被折叠的 条评论
为什么被折叠?



