lombok的简单使用

安装lombok

注意:我用的的idea,首先先把插件装上,不然也不好使


正常情况下写个Bean会是下面这种情况

public class Test {
    private int id;
    private String username;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
}

getter和setter

我采用的是springboot,这个自适配版本。编译之后版本是1.16.16

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>

然后Bean中

import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class Test {
    private int id;
    private String username;
}

这个@Setter@Getter可以放在属性上,放在类上所有的属性都会getter,setter。下面两张图对比

放在类上

放在属性上

lombok的其他注解

@NoArgsConstructor

加上这个注解给类添加一个无参构造函数

@Setter
@Getter
@NoArgsConstructor//注释掉之后下面new就报错
public class Test {

    private int id;
    private String username;
    public Test(int id,String username){
        this.id=id;
        this.username = username;
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.setUsername("lijia");
        System.out.println(test.getUsername());
    }

}

@AllArgsConstructor

给类添加一个全参的构造函数

@Setter
@Getter
@AllArgsConstructor
public class Test {

    private int id;
    private String username;

    public static void main(String[] args) {
        Test test = new Test(1,"kuhua");
        test.setUsername("lijia");
        System.out.println(test.getUsername());
    }
  }

@Data

不仅给类全属性添加getter,setter方法,还提供了equals、canEqual、hashCode、toString 方法

@Data
public class Test {
    private int id;
    private String username;
    public static void main(String[] args) {
        Test test = new Test();
        test.setUsername("lijia");
        System.out.println(test.getUsername());
    }
}

@NotNull

让属性不为空,下图去创建构造函数就报错


改一下就好了


总结

为什么用注解就可以getter,setter这么6.编译之后查看class文件,你会发现class里面还是getter,setter,只是写的时候方便了。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容