java实体类转字符串写法ToStringBuilder的应用
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);
}
- 使用DEFAULT_STYLE
com.lyj.demo.User@160877b[id=1,username=weizhixi,password=123456]
- 使用MULTI_LINE_STYLE多行风格
com.lyj.demo.User@160877b[id=1username=weizhixipassword=123456
]
- 使用NO_FIELD_NAMES_STYLE 不含字段名风格
com.lyj.demo.User@160877b[1,weizhixi,123456]
- SHORT_PREFIX_STYLE短类名前缀风格
User[id=1,username=weizhixi,password=123456]
- 使用SIMPLE_STYLE简单风格
1,weizhixi,123456
java实体类转字符串写法ToStringBuilder的应用相关推荐
- java中list、map、array、实体类、字符串之间的相互转换,以及java8 stream使用
1.list与字符串互转 // 导入阿里的fastJson.jar <!--添加fastjson依赖--><dependency><groupId>com.alib ...
- java实体类包怎么命名,程序那些事
java实体类属性命名的一个坑 2019.05.10 | 767阅读 | 1条评论 | java 今天遇到了一个坑.类里面有个属性叫pOrgNo,通过反射获取属性值时候默认将属性首字母变大写拼上get ...
- java实体类转换器,用于基础类向VO类转换
java实体类转换器 写VO类时,继承基础类,是最简单的vo类写法,但是在用mybatisplus时候,就不太好查询,通过这个转换器,可以 进行查询基础类,通过mybatisplus,在转换成VO类 ...
- JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean...
由于JAVA的基本类型会有默认值,例如当某个类中存在private int age;字段时,创建这个类时,age会有默认值0.当使用age属性时,它总会有值.因此在某些情况下,便无法实现age为nu ...
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
在此,首先说明一点任何持久性框架都需要解决一个问题,那就是Java实体类的字段一般来说基本上会与数据库表中字段不一致,那么它们是如何解决的呢?咱们以Hibernate和SpringJDBC为例说明一下 ...
- 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成...
写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...
- java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符
Java工具类--拆分字符串组装数组,替换字符 >>>>>>>>>>>>>>>>>>> ...
- Java : 实体类不能序列化异常
Java : 实体类不能序列化异常 参考文章: (1)Java : 实体类不能序列化异常 (2)https://www.cnblogs.com/cccy0/p/9496435.html (3)http ...
- java实体类及类属性判空
敲代码时判空是必须的,这里分享一下java实体类及类属性判空体会. 一.实体类判空: 1.1实体类判空 如果是读库返回实体类,我们直接判空即可,如下图 1.2如果是先定义了类就不能这样判空了,因为ne ...
最新文章
- windows 下conda安装gym
- Struts2中OGNL,valueStack,stackContext的学习
- enum 使用规范及技巧(C# 参考)
- IntelliJ IDEA for Mac在MacOS模式下的选择快捷键(Select Shortcut)
- 【转载保存】什么是线程阻塞?为什么会出现线程阻塞?
- 使用Git初始化项目时操作
- 聊聊hikari与tomcat jdbc pool的fail fast
- 蓝桥杯 ADV-11 算法提高 Torry的困惑(提高型)
- 超哥笔记 --nginx入门(6)
- Atititjs h5调用摄像头视频聊天 拍照功能 相机功能 录像attilax总结
- python爬虫:爬东方财富网平安银行历史资金流向并写入MySQL
- 苏宁服务器修复,今天下午苏宁服务器突发宕机,官方回应:因系统升级调整
- 1.9万亿美元市场,自动驾驶开发者向何处去?
- Rsoft光波导软件基于七芯光纤波导耦合器模拟
- 智能制造案例——面向重型机械车间智能制造系统解决方案
- 微服务之springCloud-docker-comsumer(三)
- 选购发烧游戏台式计算机的内存储器,游戏发烧友福音 惠普暗影精灵5 Super游戏台式电脑评测...
- 千年虫与2038年问题
- IAR更改更改字体的办法,完美解决!
- 学习也是一种兴趣爱好
热门文章
- asp.net 文件上传和下载管理源码
- OpenFile函数使用说明
- RTP PS PES ES H264协议学习
- jmeter分布式压测,远程机器来运行脚本,察看结果树中的响应数据项为空白问题
- 腾讯QQ Linux版正式回归 支持x64、ARM64
- Win10字体大小调整 资源管理器字体 浏览器标签页导航栏字体变大
- 用友软件报服务器文件日志已满,用友T3软件查询明细账提示文件组已满问题解决方法...
- RS485利用地址主动仲裁驱动
- Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\ubuntu\debian等)
- 遗传算法matlab优化实例,用遗传算法优化BP神经网络的Matlab编程实例