>  기사  >  Java  >  Java 사용자 정의 주석 인터페이스 구현 솔루션

Java 사용자 정의 주석 인터페이스 구현 솔루션

高洛峰
高洛峰원래의
2017-01-23 15:26:551869검색

Java 주석은 코드에 첨부된 일부 메타정보로, 일부 도구에서 컴파일 및 런타임 중에 구문 분석 및 사용하고 설명 및 구성 기능을 제공하는 데 사용됩니다.
주석은 코드의 실제 논리에 영향을 주지 않으며 영향을 미칠 수도 없으며 단지 지원 역할만 합니다. java.lang.annotation 패키지에 포함되어 있습니다.
1. Meta-annotation
Meta-annotation은 Annotation을 의미합니다. @Retention @Target @Document @Inherited 등 4가지 유형이 있습니다.
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. 주석의 사용자 정의
Java 코드

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.METHOD) 
public @interface HelloWorld { 
public String name() default ""; 
}

3. 주석 사용, 테스트 클래스
Java 코드 🎜 >

public class SayHello { 
@HelloWorld(name = " 小明 ") 
public void sayHello(String name) { 
System.out.println(name + "say hello world!"); 
}//www.heatpress123.net 
}

4. 주석 구문 분석

java의 반사 메커니즘이 주석을 가져오는 데 도움이 될 수 있습니다. 코드는 다음과 같습니다.
Java 코드

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); 
} 
}

Java 사용자 정의 주석 인터페이스 구현과 관련된 추가 기사 솔루션, PHP 중국어 웹사이트를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.