Lombok: рд╣реИрд╢ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╢реВрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рд╣реИрд╢рдХреЛрдб () рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЬреБрд▓ре░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: projectlombok/lombok

рд╣реИрд╢ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрд░рдЪрдирд╛ (рдЬреИрд╕реЗ рд╣реИрд╢рд╕реЗрдЯ) рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп @EqualsAndHashCode рдПрдиреЛрдЯреЗрд╢рди рдЬреЛ рд▓рдВрдмреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреИрд╕реЗ pk рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХреБрдЫ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг:

<strong i="9">@Entity</strong>
@EqualsAndHashCode(of = "pk")
class Foo {

    <strong i="10">@Id</strong>
    private Long pk;

    private LocalDate createdAt;

}
<strong i="13">@Entity</strong>
class Foo {

    <strong i="14">@Id</strong>
    private Long pk;

    private LocalDate createdAt;

    public int hashCode() {
        int PRIME = true;
        int result = 1;
        Object $pk = this.getPk();
        int result = result * 59 + ($pk == null ? 43 : $pk.hashCode());
        return result;
    }

    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
}

рддреЛ рдЬрдм рдкреАрдХреЗ = рд╢реВрдиреНрдп рдФрд░ рдкреАрдХреЗ = 43 рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг, рдпрд╣ рд╡рд╣реА рд╣реИрд╢ рдХреЛрдб рд▓реМрдЯрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╣реИрд╢ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╕рдорд╛рди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВред

рдФрд░ toString рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ OmniFaces ListConverter рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдмрдЬрд╛рдп рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рд╣реИрд╢рдХреЛрдб рд▓реМрдЯрд╛рдПрдВ

рдХреНрдпрд╛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд▓реЗ рдЪреБрдХреЗ рд╣реИрдВ, рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ ?!

рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА

  • рд▓реЛрдореНрдмреЛрдХ => 1.18.8
  • рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо => рд╡рд┐рдВрдбреЛрдЬ 10 рдЬреЗрдбреАрдХреЗ 11.0.4 рдЗрдВрдЯреЗрд▓реАрдЬреЗ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

43 рд╢рд╛рдпрдж рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ -1, 0 рдФрд░ 1 рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдЗрд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдХрдо рдЕрддрд┐рд░рд┐рдХреНрдд рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рд░рдЦрд░рдЦрд╛рд╡ рднрд╛рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рди рд╣реИрд╢рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд░рд╛рдмрд░ рдЕрдиреБрдмрдВрдз рддреЛрдбрд╝ рджреЗрдЧрд╛ред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рддреЛ рдЬрдм рдкреАрдХреЗ = рд╢реВрдиреНрдп рдФрд░ рдЕрдиреНрдп рдкреАрдХреЗ = 43 рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг, рдпрд╣ рд╡рд╣реА рд╣реИрд╢ рдХреЛрдб рд▓реМрдЯрд╛рдПрдЧрд╛

рдпрд╣ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрд╢рд╛ рд╣реИрд╢ рдЯрдХрд░рд╛рд╡ рд╣реЛрдЧрд╛, рдЪрд╛рд╣реЗ рдЖрдк рдХреБрдЫ рднреА рдЪреБрдиреЗрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Arrays.hashCode , String.hashCode рдФрд░ рдХрдИ рдЕрдиреНрдп рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯрдХрд░рд╛рд╡ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдмрдЬрд╛рдп рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рд╣реИрд╢рдХреЛрдб рд▓реМрдЯрд╛рдПрдВ

рдореЗрд░реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ, рдореИрдВ рдЬреЛрд░ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ id рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЬреАрдм рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВред

рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдЬреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреАрдХреЗ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдкрд░ рдХрд┐рд╕ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 43 рдХреЗ рд▓рд┐рдПред

рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрдЧрд╛ред

@EqualsAndHashCode(of = "pk", ifAnyNull = -1)

рддреЛ рдпрд╣ -1 рдХреЗ рдмрдЬрд╛рдп 43 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╢реВрдиреНрдп рдерд╛

43 рд╢рд╛рдпрдж рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ -1, 0 рдФрд░ 1 рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдЗрд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдХрдо рдЕрддрд┐рд░рд┐рдХреНрдд рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рд░рдЦрд░рдЦрд╛рд╡ рднрд╛рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рди рд╣реИрд╢рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд░рд╛рдмрд░ рдЕрдиреБрдмрдВрдз рддреЛрдбрд╝ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rspilker picture rspilker  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rdsubhas picture rdsubhas  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

garfieldnate picture garfieldnate  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Bryksin picture Bryksin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zenglian picture zenglian  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ