Java基础002-Lombok的使用
简介 Lombok是一个java库,通过使用简单的注解,简化java代码开发,并且在编译生成的字节码文件中生成对应的方法;主要的应用场景:java bean的代码开发。 在以往的开发中,我们需要在java bean中为每个属性添加getter&setter方法,并且需要重写toString和equals方法;有多个java bean,我们需要添加很多重复化代码, 并且,如果我们需要添加或者修改某个属性,我们需要排查对应的getter、setter、toString和equals方法,这样不仅排查难度大,并且容易出错;使用lombok可以解决该问题。 ? 构建方法 应用程序使用maven构建 ? Lombok注解的使用 @Getter 该注解可以用来注释类和类属性,属性上的注解会覆盖类上的注解;@Getter注解为所有的非静态方法生成getter方法;默认生成的getter方法是public的,可以通过AccessLevel指定访问权限; @Getter注解还提供了一个高级特性,可以指定延迟加载,并且由lombok保证线程安全 ?源码: @Getter(value = AccessLevel.PROTECTED) public class Student { @Getter(value = AccessLevel.PRIVATE) private Integer id; @Getter(lazy = true) private final String name = "AA"; private Integer age; private static String points; } ? 生成的字节码文件: @Setter 该注解可以用来注释类和属性,注释类的时候,会为非static非final属性生成setter方法,并且属性上的注解会覆盖类上的注解; 同样,可以使用AccessLevel指定访问权限。 源码: @Setter(value = AccessLevel.PROTECTED) public class Student1 { @Setter private Integer id; private final String name = "AA"; private Integer age; private static String points; } 生成的字节码文件: @ToString 只能用来注释类,默认情况下使用非静态属性,有以下几种用法
? ? ? ? ? ? ? ? ?@EqualsAndHashCode 只能用来注释类,默认情况下使用非静态属性和非transient修饰的属性,用法同ToString注解的表格 @NoArgsConstructor 生成无参构造器,有下面几个用法
? ? ? ? ? 示例: @NoArgsConstructor(staticName = "instance") public class Student4 { private Integer id; private final String name = "AA"; private Integer age; private static String points; } ? 生成字节码文件: ? @AllArgsConstructor 生成全参数构造器,可以指定staticName和access,用法和无参构造器表格一致 @RequiredArgsConstructor 生成构造器,可能有参数或者无参数;有参数,参数只能为final或者@NonNull注解修饰的未初始化的属性 示例: @RequiredArgsConstructor 生成的字节码文件: ? ?@Data 一个集合注解,包含了@Getter,@Setter,@ToString,@EqualsAndHashCode,@RequiredArgsConstructor注解的功能 ?@NonNull 指定元素取值不能为空,为空则抛空指针异常;可以用来修饰属性、方法、入参、临时变量 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Java 1.6中弃用
- Java最终在方法级别阻止并抛出异常
- java – 在服务器崩溃/关闭后恢复Asynch ThreadPoolTask??e
- 如何在Java中使用LDAP身份验证进行Exchange Web服务连接?
- java – 如何在print语句中使用零填充标志正确打印??两个位
- Java中ClassLoader类加载学习总结
- 在执行JavaMail时,所有JFrame都会冻结
- java – 为什么我们通过调用Acceptor.accept()而不是Visito
- java – 不区分大小写的排序集 – 保持不同大小写的相同字符
- 尝试使用string作为键和double作为值在java中创建哈希表