当前位置: 首页 > article >正文

4. Getter和Setter注解与lombok

文章目录

  • 1. 什么是Getter和Setter注解
  • 2. 什么是lombok
    • java自带的jar包
  • 3. 从maven仓库里找lombok相关jar包
  • 4. 把jar包导入项目
    • 另一个jar包导入途径
  • 5. 正式使用注解
    • ① 问题
    • ② 解决方案
      • 提示
  • 6. 如果还想对某个成员变量添加限制怎么办
  • 7. 内容出处

1. 什么是Getter和Setter注解

官方介绍
        最开始我们是不是手写get和set方法,但是由于太麻烦了,所以换成了(alt+insert -> Getter and Setter -> 全选 -> 回车)让idea给我们生成。
        但是如果当前类里有20多个甚至100个私有成员变量,难道也要一个一个点吗(当然全选的时候也可以用Ctrl+A)?这不是太麻烦了么。
        现在我们有一个很简便的方法,只需要在类前面写一个@Getter和@Setter注解,它就会帮我们自动生成当前类里所有私有成员变量的get和set方法了,就不需要我们自己写了。
在这里插入图片描述
        我们也可以只给某个成员变量自动生成get和set方法
在这里插入图片描述
        后续学框架的时候可能还会遇到。
        我们可以发现现在@Getter和@Setter是标红的,因此该注解需要和lombok里的相关jar包搭配使用。不用jar包的话,Alt + 回车 会提示我们安装Getter(或Setter)注解,这样太麻烦了。

2. 什么是lombok

        简单来说,它就是一个java仓库,里面有很多第三方jar包。
官方介绍
idea里安装lombok插件

java自带的jar包

在这里插入图片描述

3. 从maven仓库里找lombok相关jar包

maven是什么
maven仓库网址
进来之后在下面这个搜索框里搜:
在这里插入图片描述
        可以发现市场上所有的jar包这里几乎都有(mysql相关jar包也能搜到)。我们下载最新的(也就是第一个)
        点击版本号进来,然后选择Files这一栏里的 jar 即可下载(企业开发不会下载jar包,企业用的是maven或者Gradle)
在这里插入图片描述

4. 把jar包导入项目

步骤:新建jar文件夹 -> 把下载好的jar包拖进来 -> 右键单击 -> Add as Library(level选择 project library即可)
在这里插入图片描述
Global Library:全局库。所有项目都可以用
Project Library:项目库。当前项目可以用
Module Library:模块库。后续学框架就会知道module这个概念

另一个jar包导入途径

我们发现在这里也能看到我们刚刚导入的jar包在这里插入图片描述

5. 正式使用注解

① 问题

        这个时候我们Alt+回车,可以发现@Getter和@Setter不标红了。
在这里插入图片描述
        但是运行一下程序,会发现报错了
在这里插入图片描述

② 解决方案

github项目:idea中lombok插件相关信息
往下翻就可以找到解决方案:
在这里插入图片描述
在这里插入图片描述
再次运行一下,发现可以了。
在这里插入图片描述

提示

        对于这种开源项目,以后遇到问题我们都可以上官网(github里有的话也可以去github)看看会不会是版本支持什么出问题了(虽然此处不是版本问题)。也可以进Issues板块看看。

6. 如果还想对某个成员变量添加限制怎么办

        在类里重新写一下这个成员变量的方法就可以了。-- 方法的重写
在这里插入图片描述

package com.practice.bean;

import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
public class Dogs {
    private String name;
    private int age;
    private String variety;
    private String food;

    public void setAge(int age){
        if(age < 0 || age > 30){
            System.out.println("输入数据不合法, 已为您自动清零");
            this.age = 0;
        }else{
            this.age = age;
        }
    }
    public int getAge(){
        return this.age;
    }
    public void eat() {
        System.out.println(this.name + "狗吃饭!");
    }

    public void sleep() {
        System.out.println(this.name + "狗睡觉!");
    }

    void crazy() {
        System.out.println(this.name + "狗发疯");
    }
}

7. 内容出处

java


http://www.kler.cn/news/336837.html

相关文章:

  • 计算机毕业设计hadoop+spark天气预测 天气可视化 天气大数据 空气质量检测 空气质量分析 气象大数据 气象分析 大数据毕业设计 大数据毕设
  • zy91_C#中StringBuilder类以及char类
  • 虚拟机ip突然看不了了
  • 跨平台游戏的特点
  • 地图箭头方向检测系统源码分享
  • SM2无证书及隐式证书公钥机制签名和加密过程详解(二)
  • 上传文件失败,请检查阿里云配置信息:[The specified bucket is not valid.
  • 【力扣 | SQL题 | 每日四题】力扣1571, 1715, 1699, 1445, 1495, 1683
  • Spring Cloud Netflix Ribbon 负载均衡详解和案例示范
  • SQLCMD命令行工具导入数据并生成对应的日志文件
  • VGG16模型实现MNIST图像分类
  • 【Docker】04-Docker部署Java后端
  • 【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
  • Linux ssh 免密登录配置
  • 算法与数据结构--二分查找
  • Redis篇(最佳实践)(持续更新迭代)
  • Android Framework(八)WMS-窗口动效概述
  • 单链表基本操作(2)
  • BI小白速成课:免费!零基础入门,数据分析新手也能快速上手!
  • 系统架构设计师-论文题(2022年下半年)