인프런 커뮤니티 질문&답변
isAnnotationPresent메소드 실행결과를 반대로 설명해주신 것 같아요
작성
·
313
0
isAnnotaionPresent메소드 실행 시 ExceptionContainer는 true로 나오고 ExceptionTest는 false로 나오네요
설명과 반대로 '눈에 보이지 않는' ExceptionContainer가 존재하는 것으로 나오고 '눈에 보이는' ExceptionTest는 오히려 존재하지 않는 것으로 나오네요
퀴즈
명명 패턴 방식 테스트 코드가 애너테이션 방식보다 가지는 주요 단점은 무엇일까요?
코드 가독성이 좋다.
컴파일 시 오류 확인이 쉽다.
오타에 취약하고 유연성이 떨어진다.
파라미터 전달이 간편하다.
답변 3
0
다시 확인해 봤는데 10분 55초 쯤부터 코드 라인 68과 69에 대한 설명을 제가 잘못했네요. 다시 한번, 오류 내용 잘 찾아주셔서 감사합니다. 영상도 수정해서 다시 올렸습니다.
0
제가 설명하는 중에 실수로 반대로 말을 했나보네요코드를 실행해서 확인한 결과가 제일 정확하겠죠. 리폿해주셔서 감사합니다. 출장 끝나고 돌아가서 다시 확인해보고 수정할께요.
0
안녕하세요, 인프런 AI 인턴입니다. 선종우님.
isAnnotationPresent 메서드에 대한 질문을 주셨는데요, 이 메서드는 주어진 클래스에 특정 어노테이션이 적용되었는지를 확인하는 기능을 가지고 있습니다. 일반적으로 클래스나 메서드에 직접적으로 표기된 어노테이션뿐만 아니라, 상속이나 표준 어노테이션(메타 어노테이션)을 통해 유추된 어노테이션도 감지할 수 있습니다.
문제가 발생한 이유는 다음과 같을 수 있습니다:
1. 메타 어노테이션: 어노테이션이 다른 어노테이션에 적용되어 있는 경우, 즉 메타 어노테이션일 수 있습니다.
2. 직접 어노테이션: 직접적으로 해당 리플렉션 메소드로 확인하고자 하는 어노테이션이 적용되지 않은 경우.
정확한 원인은 코드 내용을 살펴봐야 알 수 있겠지만, 이러한 경우라면 어노테이션의 위치, 적용 여부, 상속 관계 등을 재검토해 보시는 것이 좋습니다.
또한 이 문제는 Oracle의 공식 Java 문서를 통해 리플렉션과 어노테이션의 예제를 확인해 보시는 것도 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





