Java의 레코드 클래스 소개
다음은 Oracle의 레코드 클래스에 대한 공식 정의입니다.
A record class declares a sequence of fields, and then the appropriate accessors, constructors,
equals
,hashCode
, andtoString
methods are created automatically. The fields are final because the class is intended to serve as a simple “data carrier”.
정의를 더 명확하게 이해하기 위해 일반 Java 클래스 구현과 Java 레코드 클래스 구현의 예를 볼 것입니다.
소스 코드 1:
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 name() {
return name;
}
public int age() {
return age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "Person[" +
"name=" + name +
", age=" + age +
']';
}
}
소스 코드 1은 일반적으로 모든 속성이 최종적인 표준 구현과 함께 일반 Java 클래스를 사용하여 생성된
Person
집계 클래스를 보여줍니다. , 및 equals
방법.소스 코드 2:
public record Person(String name, int age) {}
소스 코드 2는 소스 코드 1과 동일한
hashCode
집계 클래스의 구현을 보여주지만 자바 클래스 레코드를 사용합니다. 훨씬 적은 코드로 이 기능을 사용하여 동일한 결과를 얻을 수 있음을 알 수 있습니다.레코드 클래스에서 객체를 생성하는 것은
toString
키워드를 사용하여 일반 Java 클래스에서 객체를 생성하는 것과 정확히 동일합니다. 레코드 클래스에서 객체를 생성하는 예는 소스 코드 3에서 볼 수 있습니다.소스 코드 3:
Person person = new Person("Bob", 27);
그리고 소스코드 4와 같이 객체에
Person
메서드를 사용하려고 하면 출력 1과 같은 출력을 볼 수 있다.소스 코드 4:
Person person = new Person("Bob", 27);
System.out.println(person.toString());
출력 1:
Person[name=Bob, age=27]
축하합니다. 방금 Java의 레코드 클래스 기능을 배웠습니다. 사용자 지정 메서드를 만드는 방법, 사용자 지정 생성자, 표준 생성자를 만드는 방법 등 이 문서에서 다루지 않은 레코드 클래스와 관련된 내용이 여전히 많이 있습니다. 이러한 내용은 다음 문서에서 설명하겠지만, Oracle의 공식 문서를 통해 직접 배우십시오: https://docs.oracle.com/en/java/javase/15/language/records.html
표지 이미지:
https://i.picsum.photos/id/955/1920/720.jpg?hmac=lnc4y4CILWRblCsnXbmfX0JmIEjni6rFGeo6JztfCJw
다른 이미지:
https://marco.dev/assets/img/uploads/2020/record_definition.png
Reference
이 문제에 관하여(Java의 레코드 클래스 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/luthfisauqi17/introduction-to-record-class-in-java-37dc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)