또한 Astronaut은 실제 이름을 가져야 하니 빈 문자여도 안 됩니다. name.trim() 호출은 문자열 앞뒤 공백이나 탭과 같은 여백 문자를 모두 제거합니다. trim() 호출 후 남아 있는 문자열이 실제 문자열 시퀀스가 됩니다.
코드에 기능상 오류는 없습니다. 항상 그렇듯 코드가 너무 복잡하고 읽기 어렵다는 것이 문제죠. 더 좋아질 수 있는데도요. 꼭 집어 말하면 if 문은 정말 쓸데없습니다. 실제 의미를 흐리기만 하는 지저분한 코드죠.
그러면 무엇을 바꿀 수 있는지 봅시다! 비결은 메서드 반환 타입인 불입니다. 불을 반환할 때는 전체 항목을 if 문으로 감쌀 필요 없이 아래처럼 값을 바로 반환할 수 있습니다.
class Astronaut { String name; int missions; boolean isValid() { return missions >= 0 && name != null && !name.trim().isEmpty(); } }
이렇게 바꾸면 한 단계 들여쓰기할 필요도, 분기문을 둘 필요도 없습니다. 매우 간결하고 훨씬 읽기 쉽습니다!