今天在学习注解时突然想到两个问题:
1、
在一个类的方法中能不能拿到该类的类对象,即在AnnotationTest4.java文件中,执行Class c = AnnotationTest4.class;
能否拿到;
2、在该类的main方法中获取该类的所有method对象,会不会拿到main方法本身?
public static void main(String[] args) throws Exception {
Class c = AnnotationTest4.class;
Method[] methods= c.getDeclaredMethods();
for (Method method : methods) {
//若有注解,则执行
System.out.println(method.getName());
if(method.isAnnotationPresent(MyTest.class)){
method.invoke(new AnnotationTest4());
}
}
}
输出如下:
根据实验结果得知,首先,是可以在类中获取本类对象;其次
Method[] methods= c.getDeclaredMethods();
会把该类中的所有方法,其中也包含main方法都包含到Method[]中。