inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Từ Java 9 đến Java 21

Bài 10. Record class và Sealed class

compact constructor 질문이 있습니다.

Đã giải quyết

219

kamser

49 câu hỏi đã được viết

1

강의 10강 7:15 여기에 보시면

컴팩트 컨스트럭터를 사용하는 경우 필드에 값을 넣어줄 수 없다고 말씀해주셨는데

여기서 직접 this.name 으로 넣는건 불가능하지만

public record MemberRecord(
        String name,
        @CustomAnnotation int age
) {
    private static final String DEFAULT_NAME = "Unknown";
    private static final int DEFAULT_AGE = 1;

    public boolean isAdult() {
        return age > 20;
    }

    public MemberRecord {
        if (name == null || name.isBlank()) {
            name = DEFAULT_NAME;
        }
        if (age < 0) {
            age = DEFAULT_AGE;
        }
    }
}

this.name으로 값을 할당하는 것이 아니라 잘못된 값이 들어오면 그걸 변경해서 넣어주는건 되는거 같습니다.

이런 용도로 컴팩트 컨스트럭처를 사용해도 될까요?

아니면 말씀해주신 것처럼 검증 용도로만 사용하는 것을 권장하시나요?

java

Câu trả lời 1

1

lannstark

안녕하세요! kamser님! 🙂 꼼꼼하게 확인해주셔서 정말 감사드립니다!

 

결론부터 말씀드리면, name = 0; 처럼 this를 사용하지 않고 값을 넣어주는 것은 가능합니다!

또한 이 방식은 https://blogs.oracle.com/javamagazine/post/java-record-compact-canonical-constructor 에서도 확인할 수 있듯이 필요한 경우 충분히 쓸 수 있는 패턴이라고 생각합니다!

 

즉, 꼭 검증용으로 compact constructor를 사용할 필요는 없고, 값을 재할당하는 방식으로 쓰셔도 좋습니다! 🙂

관련한 내용은 영상을 재촬영, 편집하여 업로드 해두었습니다! 오늘 중으로 PDF, PPT도 수정할 예정이에요!

 

kamser님 덕분에 저도 하나 배워갑니다. 감사합니다!! 🙏

1

kamser

답변 감사합니다.

자바 21까지 빠르게 중요한 내용을 습득할 수 있게 영상 올려주셔서 제가 더 감사합니다!

중간 중간마다 기능뿐만 아니라 왜 기능이 추가되었는지 알려주셔서 너무 도움이 되었어요

 

0

lannstark

그런 부분을 특히 신경써서 준비했는데 도움이 되셨다니 다행입니다! 🙂

감사합니다!

26년2회 실기기출은 언제쯤...

0

17

2

진짜화면이랑달라서못해먹겟어요먹겟어요

0

13

1

네이버 API | '검색 - 책' API 제공 중단

0

12

0

ArticleReadService 관련 질문

0

10

0

kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.

1

32

1

이론 공부법 요약본 버전 업데이트 문의

0

15

2

domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다

1

27

1

해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.

0

13

1

Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.

0

26

2

테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.

0

17

1

Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면

1

58

1

리뉴얼 시기

0

36

2

스크립트에 대해 질문 있습니다.

1

51

1

같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!

2

55

1

조건 검색 질문

0

31

1

JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문

0

47

3

클로드코드 명령어-대화&세션관리 수업 자료

0

39

1

잘지내시죠?

2

73

1

2강 예제 소스 실행 문의

0

129

3

12강 강의 챕터 제목에 오타가 있네요

1

171

1

14강 Map에 대해서 질문이 있습니다.

0

217

1

12강 AnimalDto에 대해서 질문이 있습니다.

1

208

1

2강 주요 키워드 정리 질문이 있습니다.

0

204

1

JPMS을 사용하면 빌드 툴 없이 모듈 구성이 가능하다

0

284

1