Lombok是一种Java库,可以自动插入编辑器和构建工具中,从而消除Java的冗长代码。在开发过程中,Lombok可以帮助程序员通过注解来自动生成代码。
下面是Lombok常用的注解:
@AllArgsConstructor
该注解可以为类自动生成一个包含所有参数的构造函数。
@AllArgsConstructor
public class Person {
private String name;
private int age;
}
上述代码中,@AllArgsConstructor注解可以自动生成一个包含所有参数的构造函数,等效于下面的代码:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
@Data
该注解为类自动生成getter、setter、equals、hashCode、toString等方法。
@Data
public class Person {
private String name;
private int age;
}
上述代码中,@Data注解可以自动生成getter、setter、equals、hashCode、toString等方法。
@Getter、@Setter
这两个注解可以为类自动生成getter、setter方法。
@Getter
@Setter
public class Person {
private String name;
private int age;
}
上述代码中,@Getter和@Setter注解可以自动生成相应的getter、setter方法。
@NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor
这三个注解可以为类自动生成不同类型的构造函数。其中,@NoArgsConstructor注解可以自动生成无参构造函数,@AllArgsConstructor注解可以自动生成包含所有参数的构造函数,@RequiredArgsConstructor注解可以自动生成包含final和@NonNull注解的参数的构造函数。
@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
public class Person {
private final String name;
@NonNull
private int age;
}
上述代码中,@NoArgsConstructor注解可以自动生成无参构造函数,@AllArgsConstructor注解可以自动生成包含所有参数的构造函数,@RequiredArgsConstructor注解可以自动生成包含final和@NonNull注解的参数的构造函数。
@ToString
该注解为类自动生成toString方法。
@ToString
public class Person {
private String name;
private int age;
}
上述代码中,@ToString注解可以自动生成toString方法。
@Log
该注解为类自动生成日志输出变量。
@Log
public class Person {
private String name;
private int age;
public void printLog() {
log.info("Person name is {}", name);
log.info("Person age is {}", age);
}
}
上述代码中,@Log注解可以自动生成日志输出变量log,并在printLog方法中使用。
@Slf4j
该注解与@Log注解一样,可以为类自动生成日志输出变量。
@Slf4j
public class Person {
private String name;
private int age;
public void printLog() {
log.info("Person name is {}", name);
log.info("Person age is {}", age);
}
}
上述代码中,@Slf4j注解可以自动生成日志输出变量log,并在printLog方法中使用。
以上就是Lombok常用注解的详细说明和代码解析。