注解 说明 备注 @Setter 生成setter方法,final变量不包含 @Getter 生成getter方法,final变量不包含 @NoArgsConstructor 生成空参构造 @AllArgsConstructor 生成全部参数构造 @RequiredArgsConstructor 将标记为@NoNull的属性生成一个构造器 如果运行中标记为@NoNull的属性为null,会抛出空指针异常。 @ToString 生成所有属性的toString()方法 @EqualsAndHashCode 生成equals()方法和hashCode方法 @Data =@Setter+@Getter+@EqualsAndHashCode+@NoArgsConstructor @Data直接修饰POJO or beans, getter所有的变量,setter所有不为final的变量。如果你不需要默认的生成方式,直接填写你需要的annotation的就可以了。默认生成的所有的annotation都是public的,如果需要不同权限修饰符可以使用AccessLevel.NONE选项。当然@Data 也可以使用staticConstructor选项生成一个静态方法。 @Builder 构造Builder模式的结构。通过内部类Builder()进行构建对象。 @Value 与@Data相对应的@Value, 两个annotation的主要区别就是如果变量不加@NonFinal ,@Value会给所有的弄成final的。当然如果是final的话,就没有set方法了。 @Synchronized 同步方法 @Cleanup 自动调用close方法关闭资源。
public class TestEntity {
private String name;
private Integer age;
private final String type = "person" ;
@SneakyThrows
public void outputStream ( ) {
@Cleanup OutputStream outputStream = new FileOutputStream ( new File ( "/Users/hello" ) ) ;
}
}
public class TestEntity {
private String name;
private Integer age;
private final String type = "person" ;
public TestEntity ( ) {
}
public void outputStream ( ) {
try {
FileOutputStream $ex = new FileOutputStream ( new File ( "/Users/hello" ) ) ;
if ( Collections. singletonList ( $ex) . get ( 0 ) != null) {
$ex. close ( ) ;
}
} catch ( Throwable var2) {
throw var2;
}
}
}