Java自定义注解示例

在本教程中,我们将演示在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/264131.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论