# [Java] Record
Java 14μμ νλ¦¬λ·°λ‘ λμ
λ ν΄λμ€ νμ
μμν λ°μ΄ν°λ₯Ό 보μ νκΈ° μν ν΄λμ€
Java 14λ²μ λΆν° λμ λκ³ 16λΆν° μ μ μ€νμ ν¬ν¨λ Recordλ classμ²λΌ νμ μΌλ‘ μ¬μ©μ΄ κ°λ₯νλ€.
κ°μ²΄λ₯Ό μμ±ν λ λ³΄ν΅ μλμ κ°μ΄ κ°λ°μκ° λ§λ€μ΄μΌνλ€.
public class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
- ν΄λμ€
Person
μ λ§λ λ€. - νλ
name
,age
λ₯Ό μμ±νλ€. - μμ±μλ₯Ό λ§λ λ€.
- getterλ₯Ό ꡬννλ€.
λ³΄ν΅ Entity
λ DTO
ꡬνμ μμ΄μ λ§μ΄ μ¬μ©νλ νμμ΄λ€.
μ΄λ₯Ό Record νμ μ ν΄λμ€λ‘ λ§λ€λ©΄ μλΉν λ¨μν΄μ§λ€.
public record Person(
String name,
int age
) {}
μλμΌλ‘ νλλ₯Ό private final
λ‘ μ μΈνμ¬ λ§λ€μ΄μ£Όκ³ , μμ±μ
μ getter
κΉμ§ μ묡μ μΌλ‘ μμ±λλ€. λν equals
, hashCode
, toString
λ μλμΌλ‘ μμ±λλ€κ³ νλ λ§€μ° νΈλ¦¬νλ€.
λμ getter
λ©μλμ κ²½μ° κ΅¬νμ getXXX()
λ‘ λͺ
μΉμ μ§μ§λ§, μλμΌλ‘ λ§λ€μ΄μ£Όλ λ©μλλ name()
, age()
μ κ°μ΄ νλλͺ
μΌλ‘ μμ±λλ€.