import java.lang.annotation.*;
@Target({ElementType.METHOD,ElementType.CONSTRUCTOR})//表示修饰访法 构造
@Retention(RetentionPolicy.RUNTIME)//运行时加载
public @interface MyAnn {
String name();//属性要加括号
int age();
//Integer age2();类型不支持
}
public class TestAnn {
@MyAnn(name="zhang",age=20)//代码配置一体
public void test(String name,int age){
System.out.print(name+""+age);
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception{
Class c=TestAnn.class;
Object obj =c.newInstance();
Method [] m=c.getMethods();
for(Method mm:m){
if(mm.isAnnotationPresent(MyAnn.class)){//方法是否存在元数据
MyAnn ma=mm.getAnnotation(MyAnn.class);//
mm.invoke(obj, ma.name(),ma.age());
}
}
}
}