Java直接输出对象变成@.....的问题及解决

 更新时间:2023年09月29日 08:26:23   作者:看到我,请让我去学习  
这篇文章主要介绍了Java直接输出对象变成@.....的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java直接输出对象变成@.....问题

为什么我用System.out.println()输出一个对象会变成@.......的 

例如 object.student@1d8d30f7

原因在此

(假设我的对象名是student s =new student ();)

1.以下代码就是System.out.println(),中println,Java的底层代码

 public void println(Object x) {
        String s = String.valueOf(x);

可以发现出现了个String.valueOf(x),这个x此时就等于s也就等于new student ()

2.valueOf(x)的底层源码就是下图

 public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    }

这个obj就等于=x=s=new student(),此时return (obj == null) ? "null" : obj.toString();

运用了三元运算符,因为obj不等于null,所以直接执行了表达式三,也就是obj.toString()

3.toString()的底层源码是

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

这个方法里面只有

return getClass().getName() + "@" + Integer.toHexString(hashCode());

所以在你的控制台里面出现了   @.....什么的

至于为什么,是因为在继承里面有个最终类也就是object,所有的类都直接或者间接继承自object,你在你的类里面没有写toString,他就会默认执行object里面的指定代码

所以.....在你的类里面加个toString方法就好了 ,也就是在被实例化的那个类,在我这篇文章里面是student

解决办法

.eclipse的快捷键是  shift+alt+s

在student里面  按下 shift+alt+s 倒数第四个,选择需要的变量,点击生成,像下图一样,然后就去执行下main方法就好了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Java面试官最爱问的volatile关键字

    详解Java面试官最爱问的volatile关键字

    这篇文章主要介绍了详解Java面试官最爱问的volatile关键字,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • datatables 带查询条件java服务端分页处理实例

    datatables 带查询条件java服务端分页处理实例

    本篇文章主要介绍了datatables 带查询条件java服务端分页处理实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • springboot启动前执行方法的四种方式总结

    springboot启动前执行方法的四种方式总结

    这篇文章主要给大家介绍了关于springboot启动前执行方法的四种方式,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • java常用工具类 Date日期、Mail邮件工具类

    java常用工具类 Date日期、Mail邮件工具类

    这篇文章主要为大家详细介绍了java常用工具类,包括Date日期、Mail邮件工具类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • SpringBoot之整合MyBatis实现CRUD方式

    SpringBoot之整合MyBatis实现CRUD方式

    这篇文章主要介绍了SpringBoot之整合MyBatis实现CRUD方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Mybatis中的config.xml配置文件详细解析

    Mybatis中的config.xml配置文件详细解析

    这篇文章主要介绍了详解Mybatis-config.xml配置文件,需要的朋友可以参考下
    2017-12-12
  • Java中多线程与并发_volatile关键字的深入理解

    Java中多线程与并发_volatile关键字的深入理解

    这篇文章主要给大家介绍了关于Java中多线程与并发_volatile关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • SpringBoot整合ActiveMQ过程解析

    SpringBoot整合ActiveMQ过程解析

    这篇文章主要介绍了SpringBoot整合ActiveMQ过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • java内存分布实现代码

    java内存分布实现代码

    这篇文章主要介绍了浅谈Java内存区域划分和内存分配策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • Java递归求和1+2+3+...+n实例详解

    Java递归求和1+2+3+...+n实例详解

    在本篇文章里小编给大家带来了关于Java递归求和1+2+3+...+n实例内容,需要的朋友们可以学习参考下。
    2020-01-01

最新评论