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

180

kamser

48 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

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

감사합니다!

패키지 구분에 대해 궁금한게 있습니다

0

10

1

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

19

1

갑자기 채점 사이트가 바뀌었어요

0

19

1

문제 리스트 페이지

0

22

1

part8 Notion 링크

0

23

1

채점 사이트 관련 질문드립니다

0

20

1

인텔리제이 MCP 서버 설정 관련

0

26

1

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

28

2

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

37

2

질문있습니다

0

25

1

1번 문제 질문입니다.

0

31

1

26년 1회 실기 해설 강의

0

51

2

음악플레이어 문제 중 코드질문

0

26

1

잠겨버린 사물함 시간초과 관련 질문입니다.

0

26

1

도메인 모델에서 관계와 규칙을 구분하는 방법

0

37

2

프로젝트 질문 문의

0

46

1

문제와 풀이4 문제점

0

41

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

46

1

2강 예제 소스 실행 문의

0

80

3

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

0

143

1

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

0

186

1

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

1

174

1

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

0

177

1

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

0

245

1