작성
·
67
0
안녕하세요! 강의 잘 듣고 있습니다!
그리고 '다형성 활용하기' 챕터에서 enum의 interface 구현에 대해 새롭게 알게 되어 좋았습니다!
그런데, 궁금한 점이 생겨 이렇게 문의하게 되었습니다.
바로 CellSnapshotStatus enum
과 CellSignProvidable 인터페이스를 구현한 CellSignProvider enum
사이의 관계입니다.
CellSnapshotStatus에 새로운 타입(e.g. STAR)을 추가하게 되었을 때, 개발자가 CellSignProvider에 대해서도 알고 있어야 CellSignProvider에도 새로운 타입(STAR)에 대한 대응을 할 수 있을 것 같은데요
CellSnapshotStatus에 새로운 타입이 추가되면 CellSignProvider에도 이에 대한 대응이 필요하다는 것을 컴파일 타임에 알 수 있는 방법이 있을까요?
답변 1
1
안녕하세요, hoonti06 님!
좋은 질문이네요!
이런 경우 컴파일 타임에 알 수 있게 하기란 조금 어려운 일일 것 같은데요. (자바가 아니라 코틀린이었으면, when 키워드를 사용해서 컴파일이 깨지도록 구성할 수 있긴 합니다.)
그래서 저는 모든 Enum을 대상으로 테스트 코드를 작성하고, 새로운 Enum이 추가되었을 때 테스트 코드가 깨지도록 (신규 Enum에 대한 대응이 없으므로) 구성하는 편입니다.
컴파일 타임에는 알 수 없어도, 테스트 시점에 알 수 있도록 하는 것이죠.
도움이 되셨기를 바랍니다.
감사합니다. 🙂