最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lombok中@EqualsAndHashCode注解的使用及說明

 更新時(shí)間:2023年03月06日 09:06:06   作者:Rookie_cc  
這篇文章主要介紹了Lombok中@EqualsAndHashCode注解的使用及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@EqualsAndHashCode注解

@EqualsAndHashCode注解的作用就是自動(dòng)實(shí)現(xiàn)model類的equals方法和hashcode方法。

我們在實(shí)際工作中經(jīng)常會(huì)使用lombok來簡化我們的開發(fā)

例如我們可以在定義的model類上添加@Data注解,從而免去手寫get、set、toString、equals、hashcode等方法。

先來看問題

1、定義一個(gè)基礎(chǔ)類Car

/**
 * 汽車
 */
@Data
public class Car {
 
    /**
     * 顏色
     */
    private String color;
 
    /**
     * 續(xù)航
     */
    private Integer endurance;
 
}

2、定義一個(gè)擴(kuò)展類BYD繼承Car

/**
 * 比亞迪汽車
 */
@Data
public class BYD extends Car {
 
    /**
     * 價(jià)格
     */
    private Integer price;
 
}

3、分別new兩個(gè)對象并比較

public class EqualsAndHashCodeTest {
 
    public static void main(String[] args) {
        BYD bydBlue = new BYD();
        bydBlue.setPrice(150000);
        bydBlue.setColor("藍(lán)色");
        bydBlue.setEndurance(1200);
 
        BYD bydWhite = new BYD();
        bydWhite.setPrice(150000);
        bydWhite.setColor("白色");
        bydWhite.setEndurance(1200);
 
        System.out.println("兩個(gè)對象比較結(jié)果:" + bydBlue.equals(bydWhite));
    }
 
}

4、查看比較結(jié)果

我們會(huì)發(fā)現(xiàn)明明new的是兩個(gè)不同的對象,但是使用equals比較出來的結(jié)果卻是true。

原因是它沒有調(diào)用父類的中屬性,而是直接使用的子類中的屬性來生成hashcode,所以當(dāng)子類中的屬性參數(shù)一樣時(shí),使用equals比較結(jié)果的為true。

解決辦法

添加@EqualsAndHashCode(callSuper = true)注解或者不使用@Data注解。

@EqualsAndHashCode(callSuper = true)

就是用自己的屬性和從父類繼承的屬性來生成hashcode;

@EqualsAndHashCode(callSuper = false)

就是只用自己的屬性來生成hashcode;

@Data相當(dāng)于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode這5個(gè)注解的合集, 和@EqualsAndHashCode默認(rèn)是false。

例:

/**
 * 比亞迪汽車
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class BYD extends Car {
 
    /**
     * 價(jià)格
     */
    private Integer price;
 
}

---------------------------------或------------------------------

/**
 * 比亞迪汽車
 */
@Getter
@Setter
public class BYD extends Car {
 
    /**
     * 價(jià)格
     */
    private Integer price;
 
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java程序員常犯的五個(gè)錯(cuò)誤

    Java程序員常犯的五個(gè)錯(cuò)誤

    這篇文章總結(jié)以前經(jīng)驗(yàn)針對java編程的一些習(xí)慣,給出一些關(guān)于java編程的建議: 當(dāng)你開始成為一個(gè)程序員的時(shí)候,在編程的時(shí)候很容易陷入下面所述的一些壞習(xí)慣,下面把Java程序員常犯的五個(gè)錯(cuò)誤整理如下,需要的朋友可以參考下
    2015-07-07
  • 編程入門:掌握J(rèn)ava運(yùn)算符技巧

    編程入門:掌握J(rèn)ava運(yùn)算符技巧

    掌握J(rèn)ava運(yùn)算符技巧,能讓你的編程之旅輕松許多,本指南將帶你深入了解如何巧妙地使用這些強(qiáng)大的工具,讓代碼不僅高效,還充滿樂趣,跟著我們一起,讓你的Java代碼在運(yùn)算符的魔法下煥發(fā)新生!
    2023-12-12
  • mybatis中關(guān)于type-aliases-package的使用

    mybatis中關(guān)于type-aliases-package的使用

    這篇文章主要介紹了mybatis中關(guān)于type-aliases-package的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 聊聊如何在springboot中添加模版

    聊聊如何在springboot中添加模版

    本文,我們談?wù)勅绾卧?nbsp;spring boot 中添加模版,因?yàn)橛袝r(shí)候我們也是需要后端渲染的嘛,比如公司官網(wǎng),文中有詳細(xì)的代碼示例供我們參考,需要的朋友可以參考下
    2023-08-08
  • spring中的FactoryBean代碼示例

    spring中的FactoryBean代碼示例

    這篇文章主要介紹了spring中的FactoryBean代碼示例,涉及FactoryBean的實(shí)現(xiàn)等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • MyBatis查詢時(shí)屬性名和字段名不一致問題的解決方法

    MyBatis查詢時(shí)屬性名和字段名不一致問題的解決方法

    這篇文章主要給大家介紹了關(guān)于MyBatis查詢時(shí)屬性名和字段名不一致問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • JAVA中的函數(shù)接口示例詳解

    JAVA中的函數(shù)接口示例詳解

    創(chuàng)建一個(gè)自定義的Sayable接口,這是一個(gè)使用@FunctionalInterface注解的函數(shù)式接口,這篇文章主要介紹了JAVA中的函數(shù)接口,你都用過嗎,需要的朋友可以參考下
    2023-11-11
  • 淺談Java內(nèi)存模型之happens-before

    淺談Java內(nèi)存模型之happens-before

    于存在線程本地內(nèi)存和主內(nèi)存的原因,再加上重排序,會(huì)導(dǎo)致多線程環(huán)境下存在可見性的問題。那么我們正確使用同步、鎖的情況下,線程A修改了變量a何時(shí)對線程B可見?下面小編來簡單介紹下
    2019-05-05
  • 解決SpringBoot內(nèi)嵌Tomcat并發(fā)容量的問題

    解決SpringBoot內(nèi)嵌Tomcat并發(fā)容量的問題

    這篇文章主要介紹了解決SpringBoot內(nèi)嵌Tomcat并發(fā)容量的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 數(shù)據(jù)庫阿里連接池 druid配置詳解

    數(shù)據(jù)庫阿里連接池 druid配置詳解

    本篇文章主要介紹了數(shù)據(jù)庫阿里連接池 druid配置詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論

肇州县| 双峰县| 宜春市| 金塔县| 益阳市| 益阳市| 河间市| 大竹县| 永吉县| 台东市| 河源市| 洛阳市| 页游| 台中市| 裕民县| 安宁市| 河津市| 凌云县| 绵阳市| 盐池县| 肃宁县| 睢宁县| 五大连池市| 云浮市| 丹凤县| 太谷县| 富蕴县| 麻江县| 肃北| 辽宁省| 大荔县| 江陵县| 蓬安县| 隆安县| 江城| 鄂尔多斯市| 大悟县| 长治市| 澄江县| 北海市| 峨眉山市|