c语言编程笔录

首页 >   > 笔记大全

笔记大全

为什么宁可用Lombok也不把成员设置为public

更新时间:2023-10-27

什么是Lombok?

Lombok是一个Java库,它可以通过注解将冗长的Java代码自动化,从而简化了Java开发人员的工作。Java是一种面向对象编程语言,其中封装(Encapsulation)是一种非常重要的概念。直接将成员变量设为public会破坏封装性原则。Lombok可以通过封装保持封装性而不使用getter和setter方法,从而自动设置成员变量。

public class User {
    public Long id; //直接将变量设为public
    public String name;

    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }
}

为什么使用getter和setter方法?

为了保持封装原则,Java程序员通常使用getter和setter方法来访问Java对象的属性。这种做法的好处是,如果方法需要更改对象的属性,则可以在方法中实现验证或转换。

public class User {
    private Long id;
    private String name;

    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

为什么使用Lombok?

虽然getter和setter方法可以确保封装性,但编写它们非常乏味。幸运的是,Lombok可以自动生成getter和setter方法,从而简化代码,减少不必要的打字。这样,Java程序员可以使用更少的代码来完成同样的任务。

import lombok.Getter;
import lombok.Setter;

public class User {
    @Getter @Setter
    private Long id;
    @Getter @Setter
    private String name;

    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }
}

总结

在Java编程中,我们希望确保对象的封装,但getter和setter方法需要大量的体力和时间来编写。Lombok可以自动生成getter和setter方法,从而简化代码,减少不必要的打字。虽然将成员变量设为public看起来很方便,但是它破坏了对象封装性的概念,因此使用Lombok代替public成员变量是更好的选择。