为什么宁可用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成员变量是更好的选择。