在IntelliJ控制台如何打印Java RestModel的详细内容而非哈希地址
解决方案
原因说明
Java中直接调用System.out.println()打印对象时,默认会调用该对象继承自Object类的toString()方法,原生实现就是输出「全类名@哈希值十六进制」的格式,所以你现在看到的就是默认输出结果。如果需要输出对象的字段详情,有两种常用方案:
方案1:重写toString()方法(无第三方依赖)
如果RestModel是你项目中自定义的类,直接重写该类的toString()方法即可:
- 手动重写示例:
@Override public String toString() { return "RestModel{" + "code=" + code + ", msg='" + msg + '\'' + ", data=" + data + '}'; }
- 如果你用Lombok简化开发,直接在
RestModel类上添加@ToString注解即可,编译时会自动生成包含所有字段的toString方法,无需手动编码。
方案2:序列化为JSON格式输出
如果需要标准JSON格式的打印结果,可以借助JSON序列化工具实现,常用的Jackson、Fastjson、Gson都支持该能力:
- 以Fastjson为例,代码最为简洁:
System.out.println(com.alibaba.fastjson.JSON.toJSONString(restModel));
- 以Jackson(SpringBoot项目默认内置)为例:
import com.fasterxml.jackson.databind.ObjectMapper; // 全局可以复用一个ObjectMapper实例 ObjectMapper objectMapper = new ObjectMapper(); System.out.println(objectMapper.writeValueAsString(restModel));
注意:如果
RestModel中包含密码、密钥等敏感字段,序列化时需要添加对应JSON库的字段忽略注解,避免敏感信息泄露。
内容的提问来源于stack exchange,提问作者Ian Cho
相关产品推荐
相关产品推荐

