Coder.java
package com.lsm.model;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Coder {
public String name() default "";
public String language() default "Java";
}
Person.java
package com.lsm.model;
public class Person {
@Coder(name = "TestMan", language = "Scala")
private String skill;
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
TestProgram.java
package com.lsm.console;
import java.lang.reflect.Field;
import com.lsm.model.Coder;
import com.lsm.model.Person;
public class TestProgram {
public static void main(String[] args) {
Field[] fieldArray = Person.class.getDeclaredFields();
//Field[] fieldArray = Person.class.getFields();
//for (Field f : fieldArray) {
//if (f.getName().equals("skill")) {
//Coder coder = f.getAnnotation(Coder.class);
//System.out.println("Annotation result-- "
//+ "name: " + coder.name()
//+ "language: " + coder.language());
//}
//}
for (Field f : fieldArray) {
if (f.isAnnotationPresent(Coder.class)) {
Coder coder = f.getAnnotation(Coder.class);
System.out.println("Annotation result-- "
+ "name: " + coder.name() + ", "
+ "language: " + coder.language());
}
}
System.out.println("Done.");
}
}