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

190

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

13

2

동일성 동등성

0

13

1

안녕하세요 치킨 디도스 이벤트 보고 흉내내보려 들어왔습니다..

0

17

1

47번 리턴 관련 질문

0

20

1

실무 내용 문의드려요

0

26

2

IO활용-회원관리예제1 샘플코드 문의

0

20

1

join에대해 질문드립니다.

0

19

1

pg사가 있다고 가정하면

0

26

1

중급 1편 학습 방향에 대해 조언 부탁드립니다

0

34

1

To-Do App

0

27

1

강의노트 접속 불가

0

28

2

Kafka Cluster 구성도 질문

0

23

1

26년 1회차 기출 강의

0

55

2

기출문제

0

55

1

정보처리기사 실기 zip

0

44

2

답을언제쯤받아볼수있나요

0

49

2

데이터베이스 노션

0

38

2

형 책 어떻게 받아?

1

59

1

2강 예제 소스 실행 문의

0

99

3

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

0

151

1

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

0

194

1

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

1

183

1

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

0

188

1

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

0

254

1