Java에서 사용자 정의 주석을 만들고 사용하는 데 몇 단계가 포함됩니다. 먼저 @interface
키워드를 사용하여 주석을 정의합니다. 이 키워드는 새 주석 유형을 작성하고 있음을 나타냅니다. 주석 선언은 인터페이스 선언과 유사하지만 몇 가지 주요 차이점이 있습니다. 주석 요소는 방법이지만 신체가없는 것으로 선언됩니다. 이 요소는 주석과 관련된 메타 데이터를 나타냅니다. 일반적으로 String
, int
, boolean
, class
또는 이러한 유형의 배열과 같은 유형이 있습니다. 이 요소의 기본값도 지정할 수 있습니다.
예를 들어, @author
:
<code class="java">@interface author {String name (); 문자열 날짜 () 기본값 & quot; unknown & quot;; // 날짜의 기본값} </code>
이 주석은 name
매개 변수 (필수)와 선택적 date
매개 변수를 "알 수 없음"입니다. class = "java"> @author (name = & quot; John Doe; John doe quot; Lombok과 같은 도구로 제공되거나 반사를 사용하여 런타임에 제공됩니다. 반사는 런타임에 주석의 메타 데이터에 액세스 할 수 있습니다.
<code class="java"> class & lt;? & gt; Clazz = myclass.class; author authorAntOntation = clazz.getAntantation (author.class); if (authorAntOntation! = null) {System.out.println ( "저자 이름 :"authorAnnotation.name ()); System.out.println ( "저자 날짜 :"authorAntotation.date ()); } </code>
효과적인 사용자 정의 주석을 설계하려면 신중한 고려가 필요합니다. 모범 사례는 다음과 같습니다.
@
접두사를 사용하여 주석이 지정되어 있음을 나타냅니다. rendentionpolicy.source
, rendentionpolicy.class
또는 rendentionpolicy.runtime
). renternationpolicy.runtime
런타임 처리에 필요합니다. @target
를 사용하는 데 적용 할 수있는 주석이 적용될 수 있습니다. 이것은 코드 이해와 유지 가능성을 향상시킵니다. @author
주석은 클래스 또는 메소드의 저자 및 생성 날짜를 명확하게 나타냅니다. 이 정보는 코드 기록을 이해하고 협업을 촉진하는 데 귀중합니다. 다른 예제에는 더 이상 사용되지 않은 방법 표시, 보안 고려 사항을 나타내거나 구성 설정을 지정하기위한 주석이 포함됩니다. 코드 내 에서이 컨텍스트를 직접 제공함으로써 주석은 외부 문서의 필요성을 줄이고 코드 이해력을 향상시킵니다. 이로 인해 기존 코드를 이해하는 데 더 빠른 디버깅, 유지 보수가 쉬우 며 소요 된 시간이 줄어 듭니다. 예, Java 응용 프로그램에서 런타임 처리에 사용자 정의 주석을 사용할 수 있습니다. 이를 달성하려면 주석 정의에 retentionpolicy.runtime
를 지정해야합니다. 이 보존 정책은 주석 메타 데이터를 런타임에 사용할 수 있도록합니다. 그런 다음 Java Reflection을 사용 하여이 메타 데이터에 액세스하고 처리 할 수 있습니다. 예를 들어, 다음 주석을 고려하십시오.
<code class="java"> @retention (rendentionpolicy.runtime) @interface loggable {boolean value () default true; } </code>
이 주석은 메소드를 기록 해야하는지 여부를 나타냅니다. 런타임에 클래스 방법을 반복하고 @loggable
주석의 존재를 확인하고 그에 따라 로깅 로직을 실행할 수 있습니다. for (method method : methods) {if (method.isAnnotationPresent (loggable.class)) {loggable loggable = method.getAnnotation (loggable.class); if (loggable.value ()) {system.out.println ( "로깅 메소드 :"method.getname ()); // 로깅 작업을 수행}}}}
런타임 주석 처리가 주석 메타 데이터를 기반으로 동적 동작을 가능하게하는 방법, 프레임 워크의 가능성, 측면 지향 프로그래밍 및 기타 고급 기능을 열어줍니다. 반사를 사용하면 성능에 영향을 줄 수 있으므로 신중하게 사용하는 것이 중요합니다.
위 내용은 Java에서 사용자 정의 주석을 어떻게 생성하고 사용하려면?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!