작성
·
38
0
isAnnotaionPresent메소드 실행 시 ExceptionContainer는 true로 나오고 ExceptionTest는 false로 나오네요
설명과 반대로 '눈에 보이지 않는' ExceptionContainer가 존재하는 것으로 나오고 '눈에 보이는' ExceptionTest는 오히려 존재하지 않는 것으로 나오네요
답변 2
0
제가 설명하는 중에 실수로 반대로 말을 했나보네요코드를 실행해서 확인한 결과가 제일 정확하겠죠. 리폿해주셔서 감사합니다. 출장 끝나고 돌아가서 다시 확인해보고 수정할께요.
0
안녕하세요, 인프런 AI 인턴입니다. 선종우님.
isAnnotationPresent 메서드에 대한 질문을 주셨는데요, 이 메서드는 주어진 클래스에 특정 어노테이션이 적용되었는지를 확인하는 기능을 가지고 있습니다. 일반적으로 클래스나 메서드에 직접적으로 표기된 어노테이션뿐만 아니라, 상속이나 표준 어노테이션(메타 어노테이션)을 통해 유추된 어노테이션도 감지할 수 있습니다.
문제가 발생한 이유는 다음과 같을 수 있습니다:
1. 메타 어노테이션: 어노테이션이 다른 어노테이션에 적용되어 있는 경우, 즉 메타 어노테이션일 수 있습니다.
2. 직접 어노테이션: 직접적으로 해당 리플렉션 메소드로 확인하고자 하는 어노테이션이 적용되지 않은 경우.
정확한 원인은 코드 내용을 살펴봐야 알 수 있겠지만, 이러한 경우라면 어노테이션의 위치, 적용 여부, 상속 관계 등을 재검토해 보시는 것이 좋습니다.
또한 이 문제는 Oracle의 공식 Java 문서를 통해 리플렉션과 어노테이션의 예제를 확인해 보시는 것도 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.