当我们在Java开发中编写实体类时,经常需要手动编写toString()
方法以便于打印对象的属性值进行调试。这样会导致很多重复而繁琐的代码,这就是Lombok中的@ToString()
注解所解决的问题。
Lombok中的ToString
@ToString()
是Lombok中的一个注解,当我们使用该注解时,Lombok会自动生成toString()
方法,该方法将会打印所有属性的值。@ToString()
还可以通过一些参数的设置,为所生成的toString()
方法增加些许的个性化特征。
基础用法
在实体类中使用@ToString()
基本代码如下:
import lombok.ToString;
@ToString
public class Student {
private String name;
private int age;
private String gender;
}
当我们用System.out.println()
打印一个Student
对象时,会得到如下结果:
Student(name=John, age=20, gender=Male)
exclude参数
如果我们想要排除一部分属性,可以在@ToString()
中使用exclude
参数。exclude
参数是一个字符串数组,存储我们想要排除的属性名。
例如,我们不想在toString()
方法中打印gender
属性,代码如下:
import lombok.ToString;
@ToString(exclude = "gender")
public class Student {
private String name;
private int age;
private String gender;
}
当我们用System.out.println()
打印一个Student
对象时,会得到如下结果:
Student(name=John, age=20)
of参数
如果我们只想打印一部分属性,可以在@ToString()
中使用of
参数。of
参数也是一个字符串数组,存储我们想要打印的属性名。
例如,我们只想在toString()
方法中打印name
和age
属性,代码如下:
import lombok.ToString;
@ToString(of = {"name", "age"})
public class Student {
private String name;
private int age;
private String gender;
}
当我们用System.out.println()
打印一个Student
对象时,会得到如下结果:
Student(name=John, age=20)
callSuper参数
默认情况下,toString()
不会打印对象继承的父类对象信息,但是我们可以通过callSuper
参数来修改这个行为。当callSuper
参数为true时,toString()
方法会打印对象继承的父类对象信息。
例如,我们要在toString()
方法中打印对象继承的父类对象信息,代码如下:
import lombok.ToString;
@ToString(callSuper = true)
public class Student extends Person {
private String name;
private int age;
private String gender;
}
class Person {
private String id;
@Override
public String toString() {
return "Person(" + id + ")";
}
}
当我们用System.out.println()
打印一个Student
对象时,会得到如下结果:
Student(super=Person(id=12345), name=John, age=20, gender=Male)
结语
在实际开发中,@ToString()
是一个非常实用的注解,使用它可以帮助我们快速生成实体类的toString()
方法,简化代码量,提高开发效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文详解Lombok中@ToString()的使用技巧 - Python技术站