Lombok 之 ToString

2024-04-28 01:08
文章标签 lombok tostring

本文主要是介绍Lombok 之 ToString,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Lombok 之 ToString

博客分类: Lombok
Java annotation Lombok 

LomBok 的相关目录已经整理出来,希望大家可以根据需求自助学习,好工具要大家分享:

@Cleanup     

@Getter, @Setter

@ToString

@EqualsAndHashCode

@Constructor

@Data & @Value

@SneakyThrows

@Synchronized

@Getter(lazy=true)

@Log

 

很多时候我们进行一些探索和功能验证的时候,需要用到当前对象的toString方法,尤其是在进行xml解析,json解析这样的功能验证的时候,之前工作中就遇到过需要解析xml 和json,如果每次验证都启动tomcat的话会非常的消耗时间,所以索性直接Override toString方法,然后测试功能。

对于重写toString方法这件事大多数的做法都是把变量按照顺序,用提示语句区分,逐个打印出来,不知道屏幕前的小伙伴有多少为了这样事情苦恼的。因为写这样的代码实在头疼,又要关注拼接字符串的格式。在Lombok中,一个@ToString annotation很好的解决了这个问题。让我们一起来看一个例子:

我们的代码经常这样:

 

Java代码   收藏代码
  1. import java.util.Arrays;  
  2.   
  3. public class ToStringExample {  
  4.   private static final int STATIC_VAR = 10;  
  5.   private String name;  
  6.   private Shape shape = new Square(510);  
  7.   private String[] tags;  
  8.   private int id;  
  9.     
  10.   public String getName() {  
  11.     return this.getName();  
  12.   }  
  13.     
  14.   public static class Square extends Shape {  
  15.     private final int width, height;  
  16.       
  17.     public Square(int width, int height) {  
  18.       this.width = width;  
  19.       this.height = height;  
  20.     }  
  21.       
  22.     @Override public String toString() {  
  23.       return "Square(super=" + super.toString() + ", width=" + this.width + ", height=" + this.height + ")";  
  24.     }  
  25.   }  
  26.     
  27.   @Override public String toString() {  
  28.     return "ToStringExample(" + this.getName() + ", " + this.shape + ", " + Arrays.deepToString(this.tags) + ")";  
  29.   }  
  30. }  

 

其实,我们的代码可以这样:

 

Java代码   收藏代码
  1. import lombok.ToString;  
  2.   
  3. @ToString(exclude="id")  
  4. public class ToStringExample {  
  5.   private static final int STATIC_VAR = 10;  
  6.   private String name;  
  7.   private Shape shape = new Square(510);  
  8.   private String[] tags;  
  9.   private int id;  
  10.     
  11.   public String getName() {  
  12.     return this.getName();  
  13.   }  
  14.     
  15.   @ToString(callSuper=true, includeFieldNames=true)  
  16.   public static class Square extends Shape {  
  17.     private final int width, height;  
  18.       
  19.     public Square(int width, int height) {  
  20.       this.width = width;  
  21.       this.height = height;  
  22.     }  
  23.   }  
  24. }  

 这样的方便方式节省了好多拼接字符串的功夫。

 

lombok.toString.includeFieldNames = [true | false] (default: true)

是否包含field的信息,如果值为true ,则可以在toString方法中给出field 的name。

lombok.toString.doNotUseGetters = [true | false] (default: false)

如果值为true,则Lombok会直接获取field 而不是通过get方法获取值。

这篇关于Lombok 之 ToString的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941975

相关文章

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

深入了解 Lombok 的 `@SneakyThrows` 注解

在 Java 编程中,异常处理是一个重要而繁琐的任务,特别是当你需要处理受检异常(checked exceptions)时。Lombok 的 @SneakyThrows 注解为简化异常处理提供了一种便捷的方法。本文将详细探讨 @SneakyThrows 注解的工作原理、优缺点以及使用示例。 什么是 @SneakyThrows 注解? @SneakyThrows 是 Lombok 提供的一

【spring】Lombok注解:data和AllArgsConstructor

data和AllArgsConstructor Lombok 库的注解:data和AllArgsConstructor @Data@AllArgsConstructorprivate static class Key {private String tId;private String tType

记录|as string和ToString()的区别

目录 一、相同点二、不同点【是否需要报错】总结更新时间 一、相同点 as string和ToString()在功能上是相似的,都是将input.Tag转换为字符串类型。 二、不同点【是否需要报错】 as string使用了C#的"as"关键字进行类型转换。这种方式不会引发异常。转换失败返回null ToString()转换失败将会引发NullReferenceExcep

IDEA 安装lombok插件不兼容的问题及解决方法

解决:IDEA 安装lombok插件不兼容问题,plugin xxxx is incompatible 一、去官网下载最新的2024版本 地址传送通道: lombok插件官网地址https://plugins.jetbrains.com/plugin/6317-lombok/versions/stable  二、修改参数的配置 在压缩包路径 lombok-plugin -> li

static_隐式参数_继承_重写_toString_组合JAVA036-042

来源:http://www.bjsxt.com/ 1、S01E036_01static变量和方法 static变量和方法存放在方法区中 2、S01E037_01隐式参数this和super 类的构造方法调用自己的无参构造方法this()或有参构造方法this(a[,b…]):必须位于第一行 3、S01E038_01面向对象的三大特征(继承、封装、多态)之一:继承(extends)

Lombok和MapStruct整合

说明: Lombok和MapStruct都是用来简化Java代码的组件,它可以通过AnnotationProcessor在编译时自动生成代码,简化了我们日常开发。 原理: 自从Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在javac运行的时候得到调用。 lombok本质上就是这样的

Lombok 工具中@Data注解生成hashCode()可能导致StackOverflowError情况

看了大学一位同学博客,写了内容大致就是对于一个类中出现了该类的集合,通过Lombok的@Data注解生成class文件,当创建两个这个类的对象并且互相之间引用的时候,就出现了StackOverflowError异常,即栈溢出,或者叫超出栈深度.        在Java虚拟机内存区域分为两种一种是线程共享区域,另一种是线程私有区域,而虚拟机栈就处在线程私有区域中,虚拟机栈描述的是Jav

JavaScript 小测验 toString

toString方法 以下console.log会输出什么? const obj = {}const fun = () => {}console.log(obj.toString === Object.toString)console.log(fun.toString === Function.toString)console.log(obj.toString === Object.p