@Data
@Data
is a convenient shortcut annotation that bundles the features of @ToString
, @EqualsAndHashCode
, @Getter
/ @Setter
and @RequiredArgsConstructor
together: In other words, @Data
generates all the boilerplate that is normally associated with simple POJOs (Plain Old Java Objects) and beans: getters for all fields, setters for all non-final fields, and appropriate toString
, equals
and hashCode
implementations that involve the fields of the class, and a constructor that initializes all final fields, as well as all non-final fields with no initializer that have been marked with @NonNull
, in order to ensure the field is never null.
@Data
是一种非常方便的注解简写方式,它兼有 @ToString
, @EqualsAndHashCode
, @Getter
/ @Setter
和 @RequiredArgsConstructor
的特性,换句话说,@Data
生成了所有pojo
和bean
对象常用的样板方法:所有属性的getter
方法,所有非final
属性的setter
方法,以及toString
,equals
,hashcode
等方法,并且提供了一个初始化所有: final
字段以及带有@NonNull
标记的非final
字段的构造函数.
实例:
pom文件中引入依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
<optional>true</optional>
</dependency>
import lombok.*;
@Data
public class Person {
public String name;
public String address;
public int age;
}
测试
import com.Person;
public class AppTest {
public static void main(String[] args) {
System.out.println("--------------");
Person person = new Person();
person.setName("gaoxr");
person.setAddress("shuyang");
person.setAge(20);
boolean equals = person.equals(null);
System.out.println(person.toString()+equals);
}
}
输出:
--------------
Person(name=gaoxr, address=shuyang, age=20)false