Lombok 基础

Lombok 基本注解

Lombok 高级注解

Lombok FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/lombok-annotation-tostring.html

Lombok @ToString 注解深入理解


@ToString 注解是 Lombok 库提供的一种注解,用于自动生成一个类的 toString() 方法。这个方法会生成一个包含所有非静态字段的字符串表示形式,通常用于调试和日志记录。

Lombok 通过在编译时注入代码来实现 @ToString 注解的功能。当您使用 @ToString 注解时,Lombok 会分析类的字段,然后在编译时生成一个包含字段的名称和值的字符串表示形式。这个生成的 toString() 方法将取代手动编写的 toString() 方法。

@ToString 注解

@ToString 注解是 Lombok 库中的一个注解,它用于自动生成类的 toString() 方法。

源码如下:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface ToString {

	boolean includeFieldNames() default true;

	String[] exclude() default {};

	String[] of() default {};

	boolean callSuper() default false;

	boolean doNotUseGetters() default false;

	boolean onlyExplicitlyIncluded() default false;

	@Target(ElementType.FIELD)
	@Retention(RetentionPolicy.SOURCE)
	public @interface Exclude {}

	@Target({ElementType.FIELD, ElementType.METHOD})
	@Retention(RetentionPolicy.SOURCE)
	public @interface Include {

		int rank() default 0;

		String name() default "";
	}
}

作用

@ToString 注解的作用是简化开发人员编写 toString() 方法的过程。它减少了样板代码,提高了代码的可读性,使代码更加简洁。

注解属性

@ToString 注解支持一些属性,可以用来定制生成的 toString() 方法。

以下是一些常用的属性:

  1. includeFieldNames(默认值为 true):指定是否在生成的字符串中包含字段的名称。
  2. doNotUseGetters(默认值为 false):如果设置为 true,则生成的 toString() 方法将直接访问字段,而不是使用 getter 方法。
  3. of:用于选择要包含在生成的字符串中的字段。可以指定字段的名称,多个字段之间使用逗号分隔。
  4. callSuper(默认值为 false):如果设置为 true,则生成的 toString() 方法将包含父类的字段。
  5. exclude:用于排除不想包含在生成的字符串中的字段。可以指定字段的名称,多个字段之间使用逗号分隔。

用法

要使用 @ToString 注解,只需将其添加到类的定义上,如下所示:

import lombok.ToString;

@ToString
public class MyClass {
    private String name;
    private int age;
}

在上面的示例中,@ToString 注解应用于 MyClass 类。现在,Lombok 将自动生成一个包含 nameage 字段的 toString() 方法。

总结

总之,@ToString 注解是 Lombok 库中的一个非常方便的注解,它自动生成了类的 toString() 方法,减少了样板代码,提高了代码的可读性。您可以使用注解属性来定制生成的 toString() 方法,以满足特定的需求。这减轻了开发人员的工作负担,使代码更加简洁和易维护。

@Value注解是Lombok中的一个注解,它用于生成一个不可变(immutable)的Java类,该类包含了一些常用的方法,如构造函数、e ...
@Data注解是Lombok中的一个重要注解之一,它用于自动生成类的标准数据方法。总结总之,@Data注解是Lombok库中用于自动生成常用 ...
当你使用@Builder注解时,Lombok会在编译过程中生成一个新的内部类,该内部类包含所有字段的setter方法,以及一个build() ...
@EqualsAndHashCode注解用于自动生成equals()和hashCode()方法。@EqualsAndHashCode注解@E ...
@Log注解是Lombok提供的一个用于自动生成日志记录代码的注解,它可以帮助开发人员轻松地添加日志记录功能到他们的类中,而无需手动编写这些 ...