程序代码是这样的
public class Main {
public static void main(String[] args) throws Exception{
Object f=2;
String s=f.toString();
System.out.println(s);
}
}
f=2是装箱操作
f.toStrig()应该是取首地址,为什么输出结果是2呢?
------解决方案--------------------
这样相当于
Object f = new Integer(2);
String s = f.toString(); // 调用Integer的toString,2转换为字符串为 "2"
System.out.println(s); // 此时s的值是 "2",当然输出是2
------解决方案--------------------
在你 Object f=2;
java程序会把2放进下面这个方法的i中,至于为什么是integer,那是因为父类引用指向子类实体对象的原因;
public static Integer valueOf(int i) {
return new Integer(i);
}
----------------------------------------------
String s=f.toString();
会把实体对象的值打印出来
public String toString() {
return toString(value);
}