在本教程中,我们将演示在java中创建自定义注解的示例。 以下是创建,使用和测试自定义注解的步骤。
创建自定义注解
使用@interface
后跟注解名称创建自定义注解。 请参阅以下示例。
文件:HelloAnnotation.java –
package com.yiibai.tutorial.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * @author yiibai * */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Inherited public @interface HelloAnnotation { String value(); }
@Retention
– 保留策略确定放弃注解的位置。@Documented
– 标记另一个注解以包含在文档中。@Target
– 指示注解类型适用的程序元素的种类。@Inherited
– 标记要继承到带注解类的子类的另一个注解(默认情况下,注解不会继承到子类)。
使用自定义注释
这是一个示例,其方法使用@HelloAnnotation
进行注释。
package com.yiibai.tutorial.annotation; /** * @author yiibai * */ public class HelloAnnotationClient { @HelloAnnotation(value="Simple custom Annotation example") public void sayHello(){ System.out.println("Inside sayHello method.."); } }
测试自定义注释
以下是使用Reflection API测试自定义注释的示例。
文件:HelloAnnotationTest.java –
package com.yiibai.tutorial.annotation; import java.lang.reflect.Method; /** * @author yiibai * */ public class HelloAnnotationTest { public static void main(String[] args) throws Exception { HelloAnnotationClient helloAnnotationClient=new HelloAnnotationClient(); Method method=helloAnnotationClient.getClass().getMethod("sayHello"); if(method.isAnnotationPresent(HelloAnnotation.class)){ HelloAnnotation helloAnnotation=method.getAnnotation(HelloAnnotation.class); //Get value of custom annotation System.out.println("Value : "+helloAnnotation.value()); //Invoke sayHello method method.invoke(helloAnnotationClient); } } }
执行上面代码得到以下结果:
Value : Simple custom Annotation example Inside sayHello method..
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/264131.html