import java.lang.reflect.Method;
class Moo {
private void doSth1(){
System.out.println("私有方法的调用");
}
protected void doSth2(){}
void doSth3(){}
public void doSth4(){}
}
public class ShowMethods2 {
public static void main(String[] args) throws Exception{
Class<?> c = Class.forName("com.thinking.in.java.course.chapter14.two.Moo");
final Object o = c.newInstance();
//c.getMethods()拿到该类体系的所有public方法
for (Method method : c.getMethods()) {
//System.out.println(method.toString());
}
//只能拿到本类的所有方法
for (Method declaredMethod : c.getDeclaredMethods()) {
System.out.println(declaredMethod.toString());
if(declaredMethod.toString().contains("doSth1")){
declaredMethod.setAccessible(true);
declaredMethod.invoke(o);
}
}
}
}