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);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.