>Java >java지도 시간 >기존 DTO 객체 대신 Java 14에서 Records 클래스를 사용하는 방법

기존 DTO 객체 대신 Java 14에서 Records 클래스를 사용하는 방법

PHPz
PHPz원래의
2023-07-29 09:22:531198검색

Java 14의 Records 클래스를 사용하여 기존 DTO 객체를 대체하는 방법

전통적인 Java 개발에서는 서로 다른 레벨 간에 데이터를 전송하기 위해 일반적으로 DTO(Data Transfer Object) 객체를 사용합니다. DTO 개체는 데이터를 캡슐화하고 여러 구성 요소 간에 전달하는 데 사용되는 간단한 Java 클래스입니다. 그러나 많은 수의 DTO 클래스를 만들고 유지 관리하는 것은 지루하고 중복될 수 있습니다. Java 14에서는 데이터 캡슐화 클래스를 정의하는 보다 간결하고 직관적인 방법을 제공하는 Records 클래스를 도입했습니다.

Records 클래스는 생성자, getter 메서드, equals, hashCode, toString 및 기타 메서드를 자동으로 생성하는 데 도움이 됩니다. Records 클래스를 사용하면 코드 작성 작업량을 크게 줄이는 동시에 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다.

Record 클래스를 사용하는 예는 다음과 같습니다.

public record Person(String name, int age) {}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 25);
        System.out.println(person.name());
        System.out.println(person.age());
        System.out.println(person);
    }
}

위 예에서는 레코드 키워드를 사용하여 선언된 Person 클래스를 정의했습니다. 또한 이름과 나이라는 두 가지 속성을 정의합니다. Records 클래스는 name, age 매개변수와 해당 getter 메소드를 사용하여 자동으로 생성자를 생성합니다.

메인 메소드에서는 new 키워드를 사용하여 Person 객체를 생성하고 name() 및 age() 메소드를 호출하여 객체의 속성 값을 얻습니다. 마지막으로 toString() 메소드를 호출하여 Person 객체를 직접 인쇄할 수 있습니다.

자동으로 생성된 메서드 외에도 Records 클래스는 몇 가지 특수 기능도 제공합니다. 예를 들어 Records 클래스는 각 속성에 대한 최종 수정자를 자동으로 생성하여 변경할 수 없는 필드로 만듭니다. 즉, 객체가 생성된 후에는 객체의 속성값을 수정할 수 없으므로 객체의 불변성이 보장됩니다.

또 다른 유용한 기능은 Records 클래스가 자동으로 Equals 및 hashCode 메서드를 구현한다는 것입니다. 이는 == 연산자를 사용하여 equals 메소드를 수동으로 작성할 필요 없이 두 개의 Records 객체를 비교할 수 있음을 의미합니다.

동시에 Records 클래스는 원본 객체와 속성은 동일하지만 값이 다른 새 객체를 생성하기 위한 매우 편리한 복사 방법도 제공합니다. 복사 방법을 사용하면 복사 논리를 수동으로 작성하지 않고도 객체의 속성 값을 쉽게 수정할 수 있습니다.

public record Person(String name, int age) {}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 25);
        Person modifiedPerson = person.withAge(30);
        System.out.println(modifiedPerson);
    }
}

위의 예에서는 withAge 메서드를 사용하여 age 속성이 30으로 수정된 새 Person 개체를 만들었습니다. 우리는 관심 있는 속성만 수정하면 되고, 다른 속성의 값에는 주의를 기울일 필요가 없습니다.

Records 클래스는 패턴 일치와 같은 다른 기능과 함께 사용할 수도 있습니다. 패턴 일치는 다양한 객체 상태를 더 쉽게 처리하는 데 도움이 되는 Java 14의 또 다른 중요한 기능입니다.

public record Person(String name, int age) {}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 25);

        if (person instanceof Person p) {
            System.out.println(p.name());
            System.out.println(p.age());
        }
    }
}

위 예에서는 패턴 일치를 사용하여 Person 개체의 속성을 변수 p에 바인딩하고 이를 if 문에 출력합니다. 이를 통해 Records 클래스를 보다 직관적으로 사용하여 다양한 개체 상태를 처리할 수 있습니다.

요약하자면, Java 14의 Records 클래스는 데이터 캡슐화 클래스를 정의하는 보다 간결하고 직관적인 방법을 제공합니다. 생성자, getter 메소드, 동등 및 기타 메소드를 자동으로 생성함으로써 코드 작성 작업량을 크게 줄일 수 있습니다. 동시에 Records 클래스의 일부 특수 기능과 다른 기능과의 조합을 통해 데이터 객체를 보다 효율적으로 처리할 수 있습니다. 따라서 Records 클래스는 Java 개발에서 기존 DTO 개체를 대체하는 좋은 선택이 됩니다.

위 내용은 기존 DTO 객체 대신 Java 14에서 Records 클래스를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.