[Java] Java16: Record Class
μλ° νλ©΄ μν°ν¨ν΄μΌλ‘ μμμ κΌ½νλ κ² μ€ νλκ° λ°λ‘ Getter Setter ν¨ν΄μ΄λ€.

μ΄ ν¨ν΄μ λ¨μν λ°μ΄ν°μ± νμ
(DTO λ±)μ λ€λ£° λ μ¬μ©νκ³€ νλ€.
κ·Έλ₯ nameκ³Ό age κ° 2κ°λ§ κ°λ λ°μ΄ν° νμ
μ μλ°μ€νμΌλ‘ μ§λ©΄ μ λ κ² λλ€.
λΉμ°ν νλκ° λμ΄λλ©΄ λμ΄λ μλ‘ μ½λλΌμΈλ κΈκ²©νκ² λμ΄λλ€.
μ κ² μλ―Έκ° μμ΄ λ³΄μ΄λ?
μ무λ κ·Έ μ΄μ λ₯Ό λͺ¨λ₯΄λ©΄μ μ°λ μ ν ν¨ν΄μ€ νλλ€.
λ§λ‘λ μ°λ©΄μ μΊ‘μνλ μλνλ κ°μ²΄μ§ν₯μ΄λ νλλ°, μ κ² μ΄λλ΄μ κ°μ²΄μ§ν₯μ μ΄λ 건κ°?
μ μ΄μ λ€ get set λ§λ€κ±°λ©΄ μλνκ° λμ§λ μλλ€.
κ·Έλλ§ μ΅μ λ²μ μμλ μ΄λ¬ν ꡬνλ€μ λ²μ΄λλ €λ λ Έλ ₯λ€μ μ‘°κΈ νκΈ΄ νλλ°, ν¨κ³Όλ μμ κ² κ°λ€.
μλ¬΄νΌ record classλ μ΄λ° λ°μ΄ν°μ± νμ
λ€μ μ μν λ μ¬μ©νλΌκ³ λ§λ νΉμν ν΄λμ€ μ μλ²μ΄λ€.
μ νμ€λ λκ° λ€μκ³Ό κ°μ ννλ₯Ό κ°μ§λ€.
record λ μ½λλͺ
(νλ1, νλ2, ...)
{
... ν΄λμ€ μ μ
}
λ μ½λλ μμ±μλ₯Ό ν΅ν΄ λΆλ³ κ°μ²΄λ₯Ό μμ±νλ©°, νλλͺ
κ³Ό λμΌν λ©μλλ₯Ό ν΅ν΄ νλκ°μ μ‘°νν μ μλ€.
μνλ€λ©΄ μ΄λ°μ λ° λ©μλλ€μ μ§μ ꡬνν΄μ μ¬μ©ν μλ μλ€.
μμμ½λλ€.
public class MyClass {
public static void main(String args[]) {
var john = new Person("john", 155);
System.out.println("name: "+john.name());
System.out.println("age: "+john.age());
}
}
record Person (String name, int age)
{ }

μ κΈ°μ μ μν Person λ μ½λλ
record Person (String name, int age)
{ }
μ€μ λ‘ μ΄λ κ² λ³νμ΄ λλ€.
public final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
String name() { return this.name; }
int age() { return this.age; }
public boolean equals...
public int hashCode...
public String toString() {...}
}