假设我有一个自定义类,比如Test。
Test test = new Test(); // test is the reference.现在,当我打印test的值时,它返回hashcode。
现在考虑一下,
Integer i = new Integer(10);当我打印i的值时,它返回10。
有没有人能帮我理解这里到底有什么不同?我相信两者都是对象引用,但是对于包装器类引用,它返回它所指向的对象的值。
发布于 2016-09-01 20:16:54
当您创建一个新类时,它从Object继承了toString()方法。Integer类覆盖该方法以返回内部值。
发布于 2016-09-01 20:18:03
打印时,会隐式调用toString()方法。
默认情况下(在您的Test类中),它使用一个内部对象类。对于Integer,它将Integer转换为10进制的字符串。
发布于 2016-09-01 20:21:13
您的测试类使用的是Object类的toString()方法,它打印hashCode。但是对于Integer类,toString方法被覆盖。你可以看到Integer.java here
https://stackoverflow.com/questions/39271302
复制相似问题