get()与set()方法、Lombok注解生成 |
您所在的位置:网站首页 › idea怎么设置getset › get()与set()方法、Lombok注解生成 |
导航
我们为什么需要get()与set()方法、Lombok注解生成?get()与set()方法Lombok注解生成
我们为什么需要get()与set()方法、Lombok注解生成?
Java的三大特性:《封装、继承、多态》中的“封装”,介绍起来比较简单,但哪个应用实例最能体现封装呢?我觉得private属性与get()与set()方法的结构,最能体现Java的封装特性。 而每次都手动写get()与set()方法太麻烦,所以我们需要用用lombok注解偷偷懒。 get()与set()方法封装就是,需要让使用者知道的部分暴露出来,不需要使用者知道的都隐藏起来。 那这句话,具体怎么实现呢?get()与set()方法就是一个很好的例子。 我们将类的属性,用private修饰,控制外界的访问权限。再提供外界可以访问的get()与set()方法,让我们通过我们封装好的方法来访问我们类里的属性,提高安全性,降低耦合性。 来个例子: class Student { private Integer id; // 学生编号,学号 private String name; // 学生姓名 private Integer age; // 学生年龄 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { // 可以在get()与set()方法中进行逻辑判断,保证数据的安全 if (age > 0 && age System.out.println("年龄有误!"); } } } public class Test { public static void main(String[] args) { Student student1 = new Student(); student1.setId(1); //由于属性都是private的,只能通过提供的set()方法赋值 student1.setName("小猪"); student1.setAge(18); System.out.println("ID:"+student1.getId()); // 只能通过提供的get()方法取值 System.out.println("NAME:"+student1.getName()); System.out.println("AGE:"+student1.getAge()); } } ----------------------------------------------------- 输出结果: ID:1 NAME:小猪 AGE:18在Eclipse中,提供了快捷的get()和set()方法生成功能: 在属性定义完成后,在属性下方空白行右键,选择Source -> Generate Getters and Setters: Lombok 是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。 第一步.想要使用Lombok,首先当然是去下载啦。下载lombok.jar:https://projectlombok.org/download Lombok官方地址: https://projectlombok.org/ github地址: https://github.com/rzwitserloot/lombok 第二步.运行lombok.jar。在lombok.jar 的目录下,运行:java -jar lombok.jar 安装完成后,可在eclipse根目录下,查看eclipse.ini文件,是否有了lombok的配置。 第三步,重启eclipse,并clean project。然后将lombok.jar导入工程,并Build Path。 再进行编程时,则可以直接在类前使用@Getter @Setter,表示生成get()与set()方法。 import lombok.Getter; import lombok.Setter; @Getter @Setter class Student { private Integer id; // 学生编号,学号 private String name; // 学生姓名 private Integer age; // 学生年龄 }当然,Lombok的功能不止这一个,我copy了一段关于lombok常用注解的说明: @val @var 弱类型定义变量;val注解变量申明是final类型,var注解变量是非final类型 @NonNull 在方法或构造函数的参数上使用@NonNull,lombok将生成一个空值检查语句 @Getter @Setter @Accessors 给类增加 Get 和 Set 方法,使用 @Accessors 注解可以让set方法返回类本身,从而实现链式风格编程 @ToString 给类增加 toString 方法 @EqualsAndHashCode 给类增加equals和hashCode方法 @NoArgsConstructor 给类增加无参构造器 @RequiredArgsConstructor 给类增加指定参数的构造器 @AllArgsConstructor 给类增加包含所有参数的构造器 @Data 等同于 @ToString + @EqualsAndHashCode + @Getter + @Setter + @RequiredArgsConstructor @Value 提供final变量的 @Getter @Builder 提供建筑者模式 @SneakyThrows 转换checked异常为unchecked异常 @Synchronized 类似 Synchronized 关键字,但是可以隐藏同步锁 (会生成一个内部final对象,锁会加这个内部变量,而不是类本身) @Log @Slf4j @CommonsLog 生成各种log对象 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |