최근에 특수 효과에 대해 읽었으며 약간 혼란 스럽습니다. 주석 @NotNull을 사용했지만 변수가 null이 아닌지 확인하는 방법을 모르겠습니다. 코드에서 null에 대한 값을 확인하는 항목이 있는지 확인하십시오. 이는 인터페이스이기 때문에 이해할 수 있습니다. 실제 처리는 어디에서 발생하며 코드에서이 위치가 지정되지 않은 이유는 무엇입니까? 필자가 보았던 예는 보통 값을 취하는 주석을 작성하지만 다른 것은하지 않기 때문에 구현이 어디에서 발생하는지 혼란 스럽습니다.특수 효과 처리는 어디에서 발생합니까?
4
A
답변
5
주석은 단지 메타 데이터 일 뿐이며, 더 이상은 아닙니다. 클래스에 대한 세부 정보를 지정하려면 주석을 추가하십시오. 메타 데이터를 정의하는 기존의 잘 알려진 XML 방식의 대안으로 (어느 정도까지) 그것들을 생각하십시오.
이제 누군가가 XML을 읽고 메타 데이터로 무언가를 만드는 코드를 실행한다는 것이 명백합니다. 주석도 마찬가지입니다. 주석이 속한 프레임 워크는 주석을 읽고이 정보로 무엇인가를 만들어야합니다. @NotNull
의 경우, hibernate-validator 프로젝트. 자바에 의해 노출 된 API는 반사에 의해 주석의 정보 (java.lang.Class
, Method
, Field
등과 같은 클래스)에 액세스 할 수있게 해줍니다. 그래서 어딘가에 Hibernate Validator 내부에는 클래스로 이동하는 코드가 있으며, 리플렉션으로 주석을 읽고 클래스가 이러한 주석을 준수하는지 확인합니다. 이러한 주석에는 일반적으로 보존 정책 '런타임'이 있습니다. 즉, 바이트 코드에 보존되고 이러한 주석을 전달하는 클래스와 함께로드됩니다.
Java 컴파일러에서 처리해야하는 주석이 있습니다. @Deprecated
, @SuppressWarnings
등과 같이. 이러한 주석을 사용하면 편집 단계에서 몇 가지 코드 문제를 발견 할 수 있다는 이점이 있습니다.
주석 처리기를 넣고 컴파일 단계에서 '연결'할 수도 있지만 완전히 다른 이야기입니다.
희망 사항은 약간의 주석 사용법을 분명히합니다.
관련 문제
- 1. Java에서 특수 효과 결합
- 2. XNA 3D의 특수 효과?
- 3. PDF에 특수 효과 추가
- 4. ExceptionContext.ExceptionHandled가 true로 변경됩니다. 예외 처리는 어디에서 처리됩니까?
- 5. 예외 처리는 어디에서 할 수 있습니까? 서비스 계층 또는 컨트롤러?
- 6. 어디에서 교착 상태가 발생합니까?
- 7. 메모리 누수는 어디에서 발생합니까?
- 8. 어디에서 메모리 누수가 발생합니까?
- 9. 웹 트래픽은 어디에서 발생합니까?
- 10. GLKShaderBlockNode 누수는 어디에서 발생합니까?
- 11. 메모리 누수는 어디에서 발생합니까?
- 12. 처리는
- 13. 처리는
- 14. 마커 인터페이스 또는 특수 효과?
- 15. iPhone에서지도의 경로에 특수 효과 추가
- 16. 특수 효과 컨트롤러에 처리기 삽입
- 17. 맞춤형 특수 효과 뷰 재사용
- 18. BlogEntry에서 메모리 누수는 어디에서 발생합니까?
- 19. 이 스크립트의 실수는 어디에서 발생합니까?
- 20. SourceTree에서 git-blame은 어디에서 발생합니까
- 21. 분산 컴퓨팅/병렬 처리는 어디에서 시작해야합니까? (Python/C)
- 22. 예외 처리는
- 23. 반복 처리는
- 24. 예외 처리는
- 25. 동시 처리는 어떻게 처리됩니까?
- 26. HTML 5 캔버스 이미지 특수 효과
- 27. 특수 효과 알고리즘, 라이브러리 및 서적
- 28. mvc2 데이터 특수 효과 확장 EqualTo
- 29. 삽입 된 YouTube 동영상의 특수 효과 제거
- 30. Alpstein/Route-me 특수 효과 풍선