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的Hibernate框架中的注解与缓存

    详解Java的Hibernate框架中的注解与缓存

    这篇文章主要介绍了详解Java的Hibernate框架中的注解与缓存,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Java一行代码搞定耗时性能追踪

    Java一行代码搞定耗时性能追踪

    在开发过程中,性能监控和调试是我们经常面对的问题,虽然市面上有许多成熟的性能监控工具,但有时我们需要一个轻量级、灵活且优雅的解决方案,下面我们就来看看Java如何搞定耗时性能追踪吧
    2024-11-11
  • 详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别

    详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别

    下面小编就为大家带来一篇详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Java Springboot整合支付宝接口的教程详解

    Java Springboot整合支付宝接口的教程详解

    这篇文章主要为大家详细介绍了Java Springboot实现整合支付宝接口的教程,文中的示例代码讲解详细,具有一定的参考价值,需要的可以参考一下
    2023-02-02
  • SpringBoot整合RocketMq实现分布式事务

    SpringBoot整合RocketMq实现分布式事务

    这篇文章主要为大家详细介绍了SpringBoot整合RocketMq实现分布式事务的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2024-11-11
  • 利用注解配置Spring容器的方法

    利用注解配置Spring容器的方法

    本篇文章主要介绍了利用注解配置Spring容器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Java中获取子字符串的几种方法示例

    Java中获取子字符串的几种方法示例

    这篇文章主要主要给大家总结了Java中获取子字符串的几种方法,分别是采用split的方式、采用indexOf的方式、正则和采用replaceFirst的方式这四种方法,需要的朋友可以参考借鉴,下面来看看详细的介绍吧
    2017-01-01
  • 去掉 IDEA 中 mybatis配置文件的局部背景颜色(图解)

    去掉 IDEA 中 mybatis配置文件的局部背景颜色(图解)

    这篇文章通过图文并茂的形式给大家介绍了去掉IntelliJ IDEA 中 mybatis配置文件的局部背景颜色及mybatis 对应的 xml 文件警告的方法图解,需要的朋友可以参考下
    2018-09-09
  • SpringBoot集成ElasticSearch实现minio文件内容全文检索

    SpringBoot集成ElasticSearch实现minio文件内容全文检索

    这篇文章详细介绍了如何在Spring Boot项目中集成Elasticsearch和Kibana,包括Docker安装、中文分词器安装、后端代码实现以及前端查询组件封装,需要的朋友可以参考下
    2024-11-11
  • 取消idea双击shift键时出现的全局搜索的问题分析

    取消idea双击shift键时出现的全局搜索的问题分析

    这篇文章主要介绍了取消idea双击shift键时出现的全局搜索的问题分析,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10

最新评论