反射方法名输出碰到的问题
public class OomTest {
public static void main(String[] args){
Class clz = OomTest.class;
Method[] methods = clz.getDeclaredMethods();
System.out.println(methods.length );//1
System.out.println(methods[2].getName());
Method m2 = methods[2];
Class[] p = m2.getParameterTypes();
System.out.println(p[0].getName());//2
}
public void setA(){
}
public void setB(int a){
}
}
如上图,运行第一次,一切结果正常,在运行一次,会发现methods数组大小变为1,只有setA()方法了。然而,再运行一次,methods数组大小又恢复为2 了,里面方法为setA(),setB(int a)。造成这种结果的原因是什么,求大神告知