java 사용자 정의 주석 인터페이스 구현 방안

자바 주석은 코드에 추가된 일부 메타정보로 일부 도구가 컴파일, 운행할 때 해석하고 사용하는 데 사용되며 설명, 설정 기능을 한다.주석은 코드의 실제 논리에 영향을 주지 않고 보조적인 작용만 할 뿐이다.자바에 포함됩니다.lang.annotation 패키지에 있습니다.1. 메타 주해 메타 주해는 주해의 주해를 가리킨다.@Retention @Target @Document @Inherited 네 가지가 있습니다.1.1, @Retention: 메모의 보존 정책 Java 코드를 정의합니다
 
@Retention(RetentionPolicy.SOURCE) // , class
@Retention(RetentionPolicy.CLASS) // , class , ,
@Retention(RetentionPolicy.RUNTIME)// class ,
1.2, @Target: 메모의 역할 대상 Java 코드를 정의합니다
 
@Target(ElementType.TYPE) // 、 、 、
@Target(ElementType.FIELD) // 、
@Target(ElementType.METHOD) //
@Target(ElementType.PARAMETER) //
@Target(ElementType.CONSTRUCTOR) //
@Target(ElementType.LOCAL_VARIABLE)//
@Target(ElementType.ANNOTATION_TYPE)//
@Target(ElementType.PACKAGE) ///
elementType은 여러 개가 있을 수 있다. 하나의 주석은 클래스, 방법, 필드의 등등 1.3, @Document: 이 주석은 javadoc에 포함된다는 것을 설명한다. 1.4, @Inherited: 하위 클래스는 상위 클래스의 이 주석을 계승할 수 있다는 것을 설명한다. 다음은 사용자 정의 주석의 예시 2, 주석의 사용자 정의 자바 코드이다
 
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface HelloWorld {
public String name() default "";
}
3, 주석의 사용, 테스트 클래스 자바 코드
 
public class SayHello {
@HelloWorld(name = " ")
public void sayHello(String name) {
System.out.println(name + "say hello world!");
}//www.heatpress123.net
}
4, 주석을 해석하는 자바의 반사 메커니즘은 도움을 줄 수 있고 주석을 얻을 수 있다. 코드는 다음과 같다. 자바 코드
 
public class AnnTest {
public void parseMethod(Class<?> clazz) {
Object obj;
try {
//
obj = clazz.getConstructor(new Class[] {}).newInstance(
new Object[] {});
for (Method method : clazz.getDeclaredMethods()) {
HelloWorld say = method.getAnnotation(HelloWorld.class);
String name = "";
if (say != null) {
name = say.name();
System.out.println(name);
method.invoke(obj, name);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
AnnTest t = new AnnTest();
t.parseMethod(SayHello.class);
}
}

좋은 웹페이지 즐겨찾기