java开发中你可能需展示类的属性值,把对象记录为日志,调试输出等操作。ToStringBuilder提供简便类转字符串写法。
代码如下,这里采用的是lombok插件,也可以使用该插件自带的ToString()方法,根据需求自己定夺。
导入依赖:

 <!--小辣椒 https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.10</version><scope>provided</scope></dependency><!-- 使用ToStringBuilder必须使用下面这个依赖 https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency>
package com.lyj.demo.pojo;import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;import java.util.Date;@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Student {private Long id;private String studentName;private Integer age;private Date birth;private Date registerTime;private Date lastUpdateTime;public Student(Long id, String name, Integer age) {this.id = id;this.studentName = name;this.age = age;}@Overridepublic String toString() {return ToStringBuilder.reflectionToString(this);
//        return JacksonUtil.toJson(this);}public static void main(String[] args){Student aa = new Student(1L, "aa", 23);System.out.println(aa.toString());System.out.println(aa);}
}

运行截图如下:

以上采用的是ToStringBuilder默认的格式化方式,基本可以满足开发的需求,ToStringBuilder还有其他的格式,如下所示,

ToStringBuilder的风格

public abstract class ToStringStyle implements Serializable {private static final long serialVersionUID = -2587890625525655916L;public static final ToStringStyle DEFAULT_STYLE = new ToStringStyle.DefaultToStringStyle();public static final ToStringStyle MULTI_LINE_STYLE = new ToStringStyle.MultiLineToStringStyle();public static final ToStringStyle NO_FIELD_NAMES_STYLE = new ToStringStyle.NoFieldNameToStringStyle();public static final ToStringStyle SHORT_PREFIX_STYLE = new ToStringStyle.ShortPrefixToStringStyle();public static final ToStringStyle SIMPLE_STYLE = new ToStringStyle.SimpleToStringStyle();...
}

使用方式如下:

@Override
public String toString() {//return ToStringBuilder.reflectionToString(this);//return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);//return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);//return ToStringBuilder.reflectionToString(this, ToStringStyle.NO_FIELD_NAMES_STYLE);//return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);return ToStringBuilder.reflectionToString(this, ToStringStyle.SIMPLE_STYLE);
}
  1. 使用DEFAULT_STYLE
com.lyj.demo.User@160877b[id=1,username=weizhixi,password=123456]
  1. 使用MULTI_LINE_STYLE多行风格
com.lyj.demo.User@160877b[id=1username=weizhixipassword=123456
]
  1. 使用NO_FIELD_NAMES_STYLE 不含字段名风格
com.lyj.demo.User@160877b[1,weizhixi,123456]
  1. SHORT_PREFIX_STYLE短类名前缀风格
User[id=1,username=weizhixi,password=123456]
  1. 使用SIMPLE_STYLE简单风格
1,weizhixi,123456

java实体类转字符串写法ToStringBuilder的应用相关推荐

  1. java中list、map、array、实体类、字符串之间的相互转换,以及java8 stream使用

    1.list与字符串互转 // 导入阿里的fastJson.jar <!--添加fastjson依赖--><dependency><groupId>com.alib ...

  2. java实体类包怎么命名,程序那些事

    java实体类属性命名的一个坑 2019.05.10 | 767阅读 | 1条评论 | java 今天遇到了一个坑.类里面有个属性叫pOrgNo,通过反射获取属性值时候默认将属性首字母变大写拼上get ...

  3. java实体类转换器,用于基础类向VO类转换

    java实体类转换器 写VO类时,继承基础类,是最简单的vo类写法,但是在用mybatisplus时候,就不太好查询,通过这个转换器,可以 进行查询基础类,通过mybatisplus,在转换成VO类 ...

  4. JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean...

    由于JAVA的基本类型会有默认值,例如当某个类中存在private  int age;字段时,创建这个类时,age会有默认值0.当使用age属性时,它总会有值.因此在某些情况下,便无法实现age为nu ...

  5. MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结

    在此,首先说明一点任何持久性框架都需要解决一个问题,那就是Java实体类的字段一般来说基本上会与数据库表中字段不一致,那么它们是如何解决的呢?咱们以Hibernate和SpringJDBC为例说明一下 ...

  6. 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成...

    写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...

  7. java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符

    Java工具类--拆分字符串组装数组,替换字符 >>>>>>>>>>>>>>>>>>> ...

  8. Java : 实体类不能序列化异常

    Java : 实体类不能序列化异常 参考文章: (1)Java : 实体类不能序列化异常 (2)https://www.cnblogs.com/cccy0/p/9496435.html (3)http ...

  9. java实体类及类属性判空

    敲代码时判空是必须的,这里分享一下java实体类及类属性判空体会. 一.实体类判空: 1.1实体类判空 如果是读库返回实体类,我们直接判空即可,如下图 1.2如果是先定义了类就不能这样判空了,因为ne ...

最新文章

  1. windows 下conda安装gym
  2. Struts2中OGNL,valueStack,stackContext的学习
  3. enum 使用规范及技巧(C# 参考)
  4. IntelliJ IDEA for Mac在MacOS模式下的选择快捷键(Select Shortcut)
  5. 【转载保存】什么是线程阻塞?为什么会出现线程阻塞?
  6. 使用Git初始化项目时操作
  7. 聊聊hikari与tomcat jdbc pool的fail fast
  8. 蓝桥杯 ADV-11 算法提高 Torry的困惑(提高型)
  9. 超哥笔记 --nginx入门(6)
  10. Atititjs h5调用摄像头视频聊天 拍照功能 相机功能 录像attilax总结
  11. python爬虫:爬东方财富网平安银行历史资金流向并写入MySQL
  12. 苏宁服务器修复,今天下午苏宁服务器突发宕机,官方回应:因系统升级调整
  13. 1.9万亿美元市场,自动驾驶开发者向何处去?
  14. Rsoft光波导软件基于七芯光纤波导耦合器模拟
  15. 智能制造案例——面向重型机械车间智能制造系统解决方案
  16. 微服务之springCloud-docker-comsumer(三)
  17. 选购发烧游戏台式计算机的内存储器,游戏发烧友福音 惠普暗影精灵5 Super游戏台式电脑评测...
  18. 千年虫与2038年问题
  19. IAR更改更改字体的办法,完美解决!
  20. 学习也是一种兴趣爱好

热门文章

  1. asp.net 文件上传和下载管理源码
  2. OpenFile函数使用说明
  3. RTP PS PES ES H264协议学习
  4. jmeter分布式压测,远程机器来运行脚本,察看结果树中的响应数据项为空白问题
  5. 腾讯QQ Linux版正式回归 支持x64、ARM64
  6. Win10字体大小调整 资源管理器字体 浏览器标签页导航栏字体变大
  7. 用友软件报服务器文件日志已满,用友T3软件查询明细账提示文件组已满问题解决方法...
  8. RS485利用地址主动仲裁驱动
  9. Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\ubuntu\debian等)
  10. 遗传算法matlab优化实例,用遗传算法优化BP神经网络的Matlab编程实例