在使用 Lombok 时,遵循一些编码规范可以提高代码的可读性和可维护性。以下是一些建议:
使用@Data 注解:当你需要为一个类生成 getter、setter、toString、equals 和 hashCode 方法时,可以使用 @Data 注解。这样可以减少模板代码,提高代码的可读性。@Datapublic class User { private String name; private int age;}使用 @Value 注解:当你需要创建一个不可变对象时,可以使用 @Value 注解。这将自动生成所有字段的 getter 方法,并且使类成为 final 类型。@Valuepublic class ImmutableUser { private String name; private int age;}使用 @Builder 注解:当你需要创建一个 Builder 模式的对象时,可以使用 @Builder 注解。这将自动生成一个内部的 Builder 类,用于构建对象。@Builderpublic class UserBuilder { private String name; private int age;}使用 @Getter 和 @Setter 注解:当你只需要为某些字段生成 getter 或 setter 方法时,可以使用 @Getter 和 @Setter 注解。public class PartialGetterSetter { @Getter private String name; @Setter private int age;}使用 @NoArgsConstructor、@AllArgsConstructor 和 @RequiredArgsConstructor 注解:当你需要为类生成不同类型的构造函数时,可以使用这些注解。@NoArgsConstructor@AllArgsConstructor@RequiredArgsConstructorpublic class ConstructorExample { private String name; private int age; private String address;}使用 @ToString、@EqualsAndHashCode 和 @NonNull 注解:这些注解分别用于生成 toString、equals 和 hashCode 方法,以及检查非空参数。@ToString@EqualsAndHashCodepublic class CustomMethods { @NonNull private String name; private int age;}使用 @SneakyThrows 注解:当你需要在方法中抛出未检查的异常时,可以使用 @SneakyThrows 注解。这将减少 try-catch 语句的使用。public class SneakyThrowsExample { @SneakyThrows public void readFile(String filePath) { Files.readAllLines(Paths.get(filePath)); }}使用 @UtilityClass 注解:当你需要创建一个工具类时,可以使用 @UtilityClass 注解。这将使类成为 final 类型,并且所有方法都是静态的。@UtilityClasspublic class UtilityClassExample { public String formatName(String firstName, String lastName) { return firstName + " " + lastName; }}使用 @Cleanup 注解:当你需要自动关闭资源时,可以使用 @Cleanup 注解。这将自动调用资源的 close 方法。public class CleanupExample { public void readFile(String filePath) { @Cleanup InputStream inputStream = new FileInputStream(filePath); // ... }}使用 @Log 注解:当你需要在类中添加日志记录器时,可以使用 @Log 注解。这将自动生成一个名为 log 的 Logger 实例。@Logpublic class LogExample { public void doSomething() { log.info("Doing something..."); }}遵循这些编码规范可以帮助你更好地使用 Lombok,提高代码的可读性和可维护性。


