둬볡(Lombok)μ λ°μ΄ν° ν΄λμ€λ₯Ό μμ±ν λ λ°λ³΅μ μΌλ‘ μ¬μ©νλ λ©μλλ₯Ό μ λ
Έν
μ΄μ
μΌλ‘ λ체νλ κΈ°λ₯μ μ 곡νλ λΌμ΄λΈλ¬λ¦¬μ΄λ€.
μ λ
Έν
μ΄μ
κΈ°λ°μΌλ‘ μ½λλ₯Ό μλμΌλ‘ μμ±ν΄μ£Όλ―λ‘ λ°λ³΅λλ μ½λλ₯Ό μλ΅ν μ μλ€λ μ₯μ μ΄ μλ€.
둬볡 μ μ©
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Member {
private String memberId;
private int money;
}
public class Member {
private String memberId;
private int money;
public Member(String memberId, int money) {
this.memberId = memberId;
this.money = money;
}
public Member() {
}
public String getMemberId() {
return this.memberId;
}
public int getMoney() {
return this.money;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public void setMoney(int money) {
this.money = money;
}
public boolean equals(final Object o) {
if (o == this) return true;
if (!(o instanceof Member)) return false;
final Member other = (Member) o;
if (!other.canEqual((Object) this)) return false;
final Object this$memberId = this.getMemberId();
final Object other$memberId = other.getMemberId();
if (this$memberId == null ? other$memberId != null : !this$memberId.equals(other$memberId)) return false;
if (this.getMoney() != other.getMoney()) return false;
return true;
}
protected boolean canEqual(final Object other) {
return other instanceof Member;
}
public int hashCode() {
final int PRIME = 59;
int result = 1;
final Object $memberId = this.getMemberId();
result = result * PRIME + ($memberId == null ? 43 : $memberId.hashCode());
result = result * PRIME + this.getMoney();
return result;
}
public String toString() {
return "Member(memberId=" + this.getMemberId() + ", money=" + this.getMoney() + ")";
}
}
첫 λ²μ§Έ μ½λλ 둬볡μ μ μ©ν κ²μ΄κ³ , λ λ²μ§Έ μ½λλ 둬볡μ μ λ Έν μ΄μ μ μ½λλ‘ νμ΄μ΄ κ²μ΄λ€. ν λμ λ΄λ μ½λμ κΈΈμ΄κ° μλΉν μ°¨μ΄λλ κ²μ νμΈν΄λ³Ό μ μλ€.
둬볡μ μ£Όμ μ λ Έν μ΄μ
둬볡μ λ€μν μ λ Έν μ΄μ μ μ 곡νκ³ μλλ°, κ·Έ μ€μμ λ§μ΄ μ¬μ©νλ μ λ Έν μ΄μ μ μλμ κ°λ€.
@Getter, @Setter
- ν΄λμ€μ μ μΈλμ΄ μλ νλμ λν getter/setter λ©μλλ₯Ό μλ μμ±
μμ±μ μλ μμ± μ λ Έν μ΄μ
- @NoArgsConstructor: 맀κ°λ³μκ° μλ μμ±μλ₯Ό μλ μμ±
- @AllArgsConstructor: λͺ¨λ νλλ₯Ό 맀κ°λ³μλ‘ κ°λ μμ±μλ₯Ό μλ μμ±
- @RequiredArgsConstructor: νλ μ€ finalμ΄λ @NotNullμ΄ μ€μ λ λ³μλ₯Ό 맀κ°λ³μλ‘ κ°λ μμ±μλ₯Ό μλ μμ±
@ToString
toString()
λ©μλλ₯Ό μμ±νλ μ λ Έν μ΄μ μΌλ‘, νλμ κ°μ λ¬Έμμ΄λ‘ μ‘°ν©ν΄μ 리ν΄- μ¨κ²¨μΌ ν μ 보λ
exclude
μμ±μ μ¬μ©ν΄ νΉμ νλλ₯Ό μλ μμ±μμ μ μΈν μ μμ.
@EqualsAndHashCode
- κ°μ²΄μ λλ±μ±(Equality)κ³Ό λμΌμ±(Identity)μ λΉκ΅νλ μ°μ° λ©μλ μμ±
- equalsλ λ κ°μ²΄μ λ΄μ©μ΄ κ°μμ§ λλ±μ±μ λΉκ΅, hashcodeλ λ κ°μ²΄κ° κ°μ κ°μ²΄μΈμ§ λμΌμ±μ λΉκ΅
- λΆλͺ¨ ν΄λμ€λ₯Ό μμλ°μ λΆλͺ¨ ν΄λμ€μ νλκΉμ§ λΉκ΅ν΄μΌ νλ€λ©΄,
callSuper
μμ±μ trueλ‘ μ€μ (κΈ°λ³Έ κ°μ false)
@Data
- @Getter/@Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCodeλ₯Ό λͺ¨λ ν¬κ΄νλ μ λ Έν μ΄μ