4、Lombok

Lombok

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. Lombok简单理解就是一个Java类库,通过注解的形式帮助开发减少一些结构化代码的开发工作,提高开发效率,比如通过@Data注解,class在编译的时候会自动生成getsetequalshashtoString等方法,避免写大量的代码,减少了代码量,也使代码看起来更加简洁。尤其是一些对象属性需要改动的时候,每次改动都需要重新生成getsetequalshashtoString等方法,而使用注解则可以避免此问题。

使用方法

1、如果要使用lombok,首先开发工具IntelliJ IDEA或者Eclipse需要先安装插件lombok支持,其次需要引入依赖。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
</dependency>

2、使用注解,添加需要的结构

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Student {
    private Integer sno;
    private String sname;
    private String ssex;
    private Integer sage;
}

常用注解

@Data:该注解定义在JavaBean上,给JavaBean产生getter,setter,无参构造器,tostring()hashcode()equals()

@NoArgsConstructor:产生无参构造器

@Getter:产生getter

@Setter:产生setter

@ToString:产生toString()

@RequiredArgsConstructor :可以用来定义有参构造器

@NonNull:该注解用在属性或形参上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。

public static String getName(@NonNull User user) {
    return user.getName();
}

@AllArgsConstructor:产生全属性的有参构造

@Cleanup:这个注解用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的close()方法,如果该资源有其它关闭方法,可使用@Cleanup("methodName")来指定要调用的方法。

public static void main(String[] args) throws IOException {
     @Cleanup 
     InputStream in = new FileInputStream("c:\\test.jpg");
}

@EqualsAndHashCode:生成hashCodeequals方法。