Java中annotation实例

Java中annotation实例

编写Annotation:

package com.eric.news.cha06;

import Java.lang.annotation.Documented;
import Java.lang.annotation.Inherited;
import Java.lang.annotation.Retention;
import Java.lang.annotation.RetentionPolicy;

@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface GroupTODO {

 public enum Severity {CRITICAL, IMPORTANT, TRIVIAL, DOCUMENTATION};
 Severity severity() default Severity.IMPORTANT;
 String item();
 String assignedTo();
}

---------------------
运用annotation:

package com.eric.news.cha06;

@InProgress
public class TestInProgress {

 @GroupTODO(
   severity=GroupTODO.Severity.CRITICAL,
   item="Figure out the amount of interest per month",
   assignedTo="Eric Zhou"
 )
 public void calculateInterest(float amount, float rate) {
  
 }
}


---------------------

测试:

package com.eric.news.cha06;

import Java.lang.reflect.Method;

public class TestAnnotation {


 public static void main(String[] args) throws SecurityException, NoSuchMethodException {
  Class c = TestInProgress.class;
  Method element = c.getMethod("calculateInterest", float.class, float.class);
  
  GroupTODO groupTodo = element.getAnnotation(GroupTODO.class);
  String assignedTo = groupTodo.assignedTo();
  
  System.out.println(assignedTo);
  System.out.println(groupTodo.item());

 }

}


---------------------
结果:
Eric Zhou
Figure out the amount of interest per month


你可能感兴趣的:(Java中annotation实例)