相关文章推荐
善良的小狗  ·  MySql.Data.MySqlClient ...·  1 年前    · 

最全的 lombok 注解详情(随着版本不定时更新)

一、注解介绍

作用于类,覆盖默认的 toString() 方法,输出格式:ClassName(fieldName=fieleValue, fieldName1=fieleValue)

二、属性介绍

  • includeFieldNames :在打印时是否包括字段的名称,默认为 true
  • exclude :通过该属性可以排除某些字段,默认为空
  • of :过该属性可以限定显示某些字段,默认打印非静态字段
    当 of 属性和 exclude 属性同时出现时,of 属性优先
    在不久的将来两者将会被加上 @Deprecated(不建议使用,有更好的替代),因为它们不能打印方法
  • callSuper :可以将父类的 toString 的输出包含到输出中(先调用),默认为 false
  • doNotUseGetters :是否调用 getter 方法获取属性值,false 表示调用,默认 false
  • onlyExplicitlyIncluded :仅包含显式标记为 @ToString.include 的字段和方法,默认为 false
  • Include :配置在中呈现此成员的方式;如果在方法上,则在输出中包含该方法的返回值,of 属性的替代
    Include 只有在 onlyExplicitlyIncluded = true 时才会生效,Include 标记在需要包含的属性或方法上
    当 onlyExplicitlyIncluded = true 时,则必须搭配 Include 使用,否则不打印任何字段
    • name :name 表示指定该字段的名称,默认为 “”
    • rank :rank 表示该字段的优先级,值越大排在越前面,默认为 0
  • Exclude :exclude 属性的替代
  • of、exclude 属性不能与 onlyExplicitlyIncluded、Include、Exclude 同时出现

三、实战演练

@ToString(
	includeFieldNames = true, exclude = {"age"}, of = {"name", "age"}, callSuper = false, doNotUseGetters = false
public class TongLiYa {
	private String name;
	private Integer age;
public class TongLiYa {
  	private String name;
  	private Integer age;
  	public String toString() {
    	return "TongLiYa(name=" + this.name + ", age=" + this.age + ")";
@ToString(
	includeFieldNames = true, callSuper = false, doNotUseGetters = false,
	onlyExplicitlyIncluded = true // onlyExplicitlyIncluded 默认值为 false
public class TongLiYa {
	 * Include 需要配合 onlyExplicitlyIncluded = true 使用,否则无效
	@ToString.Include(name = "丫丫", rank = 0)	
	private String name;
	@ToString.Exclude
	private Integer age;
	@ToString.Include
	private String println() {
		return "佟丽娅";
public class TongLiYa {
  	private String name;
  	private Integer age;
	private String println() {
		return "佟丽娅";
  	public String toString() {
    	return "TongLiYa(丫丫=" + this.name + ",println=" + println() + ")";

四、温馨提示

当 onlyExplicitlyIncluded = true 时需要搭配 @ToString.Include 使用,这个时候就没有必要用 @ToString.Exclude,因为字段不加 @ToString.Include 将都不会显示

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,覆盖默认的 toString() 方法,输出格式:ClassName(fieldName=fieleValue, fieldName1=fieleValue)二、属性介绍includeFieldNames:在打印时是否包括字段的名称,默认为 trueexclude:通过该属性可以排除某些字段,默认为空of:过该属性可以限定显示某些字段,默认打印非静态字段当 of 属性和 exclude 属性同时出现时,of 属性优先
@Data 注解在类上面,省略所有的get set equal toString方法 2 @Getter 注解在属性上,省略所有get方法 3 @Setter 注解在属性上,省略所有的set方法 4 @NoArgsConstructor注解类上,提供无参构造 5 @AllArgsConstructor 注解在类上,提供全参构造 不一一说明了 自己百度
java.lang.Object中有个实例方法方法toString,这个方法是一个对象的自我描述。在源码中有这样一句注释,It is recommended that all subclasses override this method.即推荐所有的子类重新该方法,因为该方法在Object中的实现,不具有可读性。 一般在一个实体类中,通常的实现方法是将该类的各个字段和字段的值拼接成一个字符串。...
Lombok是一个很好的工具,节省了很多重写方法,而@ToString就是节省了ToString方法,lombok中@ToString就是节省了我们在模型中的冗余代码下面就来举个例子 importjava.util.Arrays; publicclassToStringExample{ privatestaticfinalintSTATIC_VAR=...
文章目录lombok(三)注解EqualsAndHashCodeEqualsAndHashCode理解使用范围EqualsAndHashCode的属性@EqualsAndHashCode.Include使用范围属性@EqualsAndHashCode.Exclude组合注解@Data使用范围属性 lombok(三) EqualsAndHashCode 减少编写equals和hashCode方法,自动生成对应的方法 EqualsAndHashCode理解 equals和hashCode方法本质上是一
文章目录一、简介二、示例比较1. Lombok 写法2. Java 标准写法三、支持的配置项四、附属说明参考文献 任何类定义都可以用@ToString注释,以使lombok生成ToString()方法的实现。默认情况下,它将按顺序打印您的类名以及每个字段,并用逗号分隔。 通过设置includeFieldNames参数为true,你可以为toString()方法的输出增加一些清晰度(但也有相当的长度)。 默认情况下,所有非静态字段将被打印。如果你想跳过某些字段,你可以用@ToString.Exclu
1、检查父类子类是否都包含@ToString注解 2、@ToString注解属性callSuper决定是否调用父类的toString()方法,默认为false,如果需要打印父类的属性设置@ToString(callSuper = true),例如 @Getter @Setter @ToString(callSuper = true) public class Son extends Parent { private String id; @Getter @Setter @ToString class
在逛 Stack Overflow 的时候,发现了一些访问量像‎安第斯山一样高的问题,比如说这个:打印 Java 数组最优雅的方式是什么?访问量足足有 220W+,想不到啊,这么简单的问题竟然有这么多程序员被困扰过。 来回顾一下提问者的问题吧: 在 Java 中,数组虽然是一个对象,但并未明确的定义这样一个类,因此也就没有覆盖 toString() 方法的机会。如果尝试直接打印数组的话,输出的结...
Eclipse安装Lombok 插件: 第一步使用cmd 进入刚才下载的 lombok.jar 目录中 使用命令java -jar lombok.jar( 前提是你的计算机中已经安装jdk并配置环境变量) 出现如下窗口 进入eclipse的安装目录中如果出现一个lombok.jar的...
Lombok是一个开源的Java库,它通过使用注解和少量的代码,可以帮助开发人员生成Java类中常见的代码。@Data注解Lombok提供的一种注解,用于为Java类生成常见的getter和setter方法,以及equals、hashCode和toString方法。 实现@Data注解的方式可能有所不同,但大多数情况下,Lombok使用了Annotation Processing Tool(APT)来处理注解。APT是一种Java编译器插件,可在编译期间扫描带有特定注解Java代码,并生成额外的代码。 当程序员在Java类中使用@Data注解时,编译器会扫描带有该注解的类,并使用APT生成所需的getter和setter方法,以及equals、hashCode和toString方法。这样,程序员就无需手动编写这些常见的代码,可以节省时间和减少出错的风险。 总之,Lombok通过使用APT和注解来实现@Data注解,从而帮助开发人员生成常见的Java代码。
CSDN-Ada助手: 嗨~好久未见你更新博文了,我们现在上线了AI创作助手哦~可为你的创作提供智能化帮助,快来试试吧~https://editor.csdn.net/md/?not_checkout=1&utm_source=blog_comment_recall,在编辑器页面右侧哦~~限免!! 同时我们为您准备了一份回归奖励,快来看看吧https://activity.csdn.net/creatActivity?id=10430&utm_source=blog_comment_recall lombok 基础注解之 @RequiredArgsConstructor administera: 存在即合理,没有绝对的事情 mybatis 九大动态标签详解 foreach的属性有个写错了,collection不是参数类型,而是指定参数名,或者说是指定是取哪个参数值,而不是指定参数的类型,你这个接口如果有多个传参,指定类型而不是指定参数名肯定不行,如果传入的是个List类型的参数,mapper层用@Para(“idList”)List<String> list ,那这里应该是填collection="idList" 而不是list这个类型 lombok 基础注解之 @Builder 前提:使用了@Builder ,如果想在静态内部类Userbuilder里定义一个新的方法,需要把Userbuilder这个静态内部类写出来,在Userbuilder内部写方法就行,只写方法就行,如果想使用Userbuilder内部的属性字段 this.就行,实测可以 lombok 基础注解之 @RequiredArgsConstructor 码农小子1: