java @Lombok 使java代码变的简洁、快速

说明

官网地址
全是英文看不懂?简而言之Lombok,能够在项目中使用注解,为你省去所有诸如:对象的构造函数、 equals()方法,属性的 get()/set()方法等等,这些没有技术含量的代码统统都不用写了,Lombok帮你搞定一切,全部帮你自动生成!

使用Lombok的时候,IDE可能会出现报错,格式不规范。这时候就需要安装Lombok插件。一般最新的idea都会自动或提示你安装。

那么我们开始使用!

1.pom

点击这里,在中央仓库选择自己喜欢的版本!

2.注解

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {

    private String id;

    private String realName;

    private String gender;

    private String age;

    private String email;

    private String address;

    private String nickName;

    private String password;

    private String account;

}

(1)@Data

@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

(2)@Getter/@Setter

@Getter/@Setter注解类可为可以为相应的属性自动生成Getter/Setter方法

(3)@NonNull

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

    @NotNull
    private String id;

    public User(@NotNull String id) {
        this.id = id;
    }

(4)@Cleanup

该注解能帮助我们自动调用close()方法,很大的简化了代码。

        @Cleanup FileInputStream inputStream = new FileInputStream("/asas/sasa/as");
        @Cleanup FileOutputStream outputStream = new FileOutputStream("/sasa/sa/ds");

(5)@EqualsAndHashCode

默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。

(6)@ToString

使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。通过将includeFieldNames参数设为true,就能明确的输出toString()属性

(7)@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。

扫描二维码关注公众号,回复: 8777794 查看本文章

(8)@Builder

User user = User.builder().age("22").account("asdfasd").gender("asdfasf").build();

(9)@SneakyThrows

隐式抛出异常

    @Test
    @SneakyThrows
    public void test() {
        User user = User.builder().age("22").account("asdfasd").gender("asdfasf").build();
        @Cleanup FileInputStream inputStream = new FileInputStream("/asas/sasa/as");
        @Cleanup FileOutputStream outputStream = new FileOutputStream("/sasa/sa/ds");
    }
发布了29 篇原创文章 · 获赞 0 · 访问量 353

猜你喜欢

转载自blog.csdn.net/qq_43399077/article/details/104068560