美文网首页
「快速上手」Lombok常用注解大全

「快速上手」Lombok常用注解大全

作者: 小吴不睡觉 | 来源:发表于2023-06-11 22:27 被阅读0次

    Lombok注解教学

    Lombok是一个Java库,它通过注解的方式来简化Java代码的编写,减少样板代码(boilerplate code)的重复,提高代码的可读性和可维护性。本文将介绍Lombok库中常用的注解及其用法。

    1. @Getter和@Setter

    @Getter和@Setter是Lombok中最常用的注解之一,它们用于自动生成Java Bean类的Getters和Setters方法。使用这两个注解可以减少代码量,提高代码的可读性和可维护性。

    使用方式:

    import lombok.Getter;
    import lombok.Setter;
    
    @Getter
    @Setter
    public class User {
        private String name;
        private int age;
    }
    

    注解的作用:

    在上面的代码中,我们使用了@Getter和@Setter注解来自动生成User类的Getters和Setters方法,这样我们就可以通过下列代码来访问User类的属性:

    User user = new User();
    user.setName("Tom");
    user.setAge(20);
    System.out.println(user.getName());
    System.out.println(user.getAge());
    

    2. @ToString

    @ToString注解可以自动生成toString方法。这个方法可以将一个对象的属性转换成一个字符串,方便输出调试信息。

    使用方式:

    import lombok.ToString;
    
    @ToString
    public class User {
        private String name;
        private int age;
    }
    

    注解的作用:

    在上面的代码中,我们使用了@ToString注解来自动生成User类的toString方法,这样我们就可以通过下列代码来输出User对象的属性:

    User user = new User();
    user.setName("Tom");
    user.setAge(20);
    System.out.println(user);
    

    输出结果为:

    User(name=Tom, age=20)
    

    3. @EqualsAndHashCode

    @EqualsAndHashCode注解可以自动生成equals和hashCode方法。这个方法可以用来比较两个对象是否相等。

    使用方式:

    import lombok.EqualsAndHashCode;
    
    @EqualsAndHashCode
    public class User {
        private String name;
        private int age;
    }
    

    注解的作用:

    在上面的代码中,我们使用了@EqualsAndHashCode注解来自动生成User类的equals和hashCode方法,这样我们就可以通过下列代码来比较两个User对象是否相等:

    User user1 = new User();
    user1.setName("Tom");
    user1.setAge(20);
    
    User user2 = new User();
    user2.setName("Tom");
    user2.setAge(20);
    
    System.out.println(user1.equals(user2));
    

    输出结果为:

    true
    

    4. @NoArgsConstructor和@AllArgsConstructor

    @NoArgsConstructor和@AllArgsConstructor注解可以自动生成无参构造方法和全参构造方法。

    使用方式:

    import lombok.AllArgsConstructor;
    import lombok.NoArgsConstructor;
    
    @NoArgsConstructor
    @AllArgsConstructor
    public class User {
        private String name;
        private int age;
    }
    

    注解的作用:

    在上面的代码中,我们使用了@NoArgsConstructor和@AllArgsConstructor注解来自动生成User类的无参构造方法和全参构造方法,这样我们就可以通过下列代码来创建User对象:

    User user1 = new User();
    User user2 = new User("Tom", 20);
    

    5. @Data

    @Data注解可以自动生成Getter、Setter、equals、hashCode和toString方法,相当于同时使用了@Getter、@Setter、@EqualsAndHashCode和@ToString注解。

    使用方式:

    import lombok.Data;
    
    @Data
    public class User {
        private String name;
        private int age;
    }
    

    注解的作用:

    在上面的代码中,我们使用了@Data注解来自动生成User类的Getter、Setter、equals、hashCode和toString方法,这样我们就可以通过下列代码来访问User类的属性、比较两个User对象是否相等以及输出User对象的属性:

    User user1 = new User();
    user1.setName("Tom");
    user1.setAge(20);
    
    User user2 = new User();
    user2.setName("Tom");
    user2.setAge(20);
    
    System.out.println(user1.equals(user2));
    System.out.println(user1.toString());
    

    输出结果为:

    true
    User(name=Tom, age=20)
    

    6. @Builder

    @Builder注解可以自动生成Builder模式的代码。Builder模式是一种创建对象的设计模式,它可以让我们更加灵活地创建对象,同时也可以提高代码的可读性和可维护性。

    使用方式:

    import lombok.Builder;
    
    @Builder
    public class User {
        private String name;
        private int age;
    }
    

    注解的作用:

    在上面的代码中,我们使用了@Builder注解来自动生成User类的Builder模式的代码,这样我们就可以通过下列代码来创建User对象:

    User user = User.builder()
                    .name("Tom")
                    .age(20)
                    .build();
    

    7. @Slf4j

    @Slf4j注解可以自动生成日志记录代码。日志记录是一种常用的调试和错误处理方法,它可以帮助我们更好地了解程序的运行情况。

    使用方式:

    import lombok.extern.slf4j.Slf4j;
    
    @Slf4j
    public class User {
        private String name;
        private int age;
        
        public void hello() {
            log.info("Hello, {}!", name);
        }
    }
    

    注解的作用:

    在上面的代码中,我们使用了@Slf4j注解来自动生成User类的日志记录代码,这样我们就可以通过下列代码来记录User对象的hello方法的调用情况:

    User user = new User();
    user.setName("Tom");
    user.hello();
    

    输出结果为:

    INFO  User:9 - Hello, Tom!
    

    总结

    Lombok是一个非常实用的Java库,它可以帮助我们简化Java代码的编写,减少样板代码的重复,提高代码的可读性和可维护性。本文介绍了Lombok中常用的注解及其用法,包括@Getter、@Setter、@ToString、@EqualsAndHashCode、@NoArgsConstructor、@AllArgsConstructor、@Data、@Builder和@Slf4j。通过学习这些注解,我们可以更加高效地编写Java代码。

    相关文章

      网友评论

          本文标题:「快速上手」Lombok常用注解大全

          本文链接:https://www.haomeiwen.com/subject/rpefydtx.html