Method []ms = c.getDeclaredMethods(); ----获取本类中的所有的方法
Method []ms = c.getMethods();--------获取本类以及父类接口中所有公共的方法(public)
getModifiers()---------返回int类型值表示该字段的修饰符,即这个方法就是返回一个int型的返回值,代表类、成员变量、方法的修饰符。
m.getParameterTypes()------按照声明顺序返回 Type 对象的数组,这些对象描述了此 Method 对象所表示的方法的形参类型的
public static void main(String[] args) {
//获取类
Class c = java.lang.String.class;
Method []ms = c.getDeclaredMethods();
/*for(Method m:ms) {
//修饰符
System.out.println(Modifier.toString(m.getModifiers()));
//方法的返回值类型
Class type = m.getReturnType();
System.out.println(type);
//获取方法的名
System.out.println(m.getName());
//形参
Class [] parameter = m.getParameterTypes();
for(Class C:parameter) {
System.out.println(C.getSimpleName());//得到类简写名称
}
}*/
StringBuffer sb = new StringBuffer();
sb.append(Modifier.toString(c.getModifiers())+" class");//类的修饰符
sb.append(c.getSimpleName()+"{\n");//类名
for(Method m:ms) {
sb.append("\t");
sb.append(Modifier.toString(m.getModifiers())+" ");//方法的修饰符
sb.append(m.getReturnType().getSimpleName()+" ");//方法的类型名
sb.append(m.getName()+"(");//类名
Class[] parameter = m.getParameterTypes();//形参
for(int i = 0 ;i<parameter.length;i++) {
Class p = parameter[i];
if(i == parameter.length-1) {
sb.append(p.getSimpleName());
}else {
sb.append(p.getSimpleName()+",");
}
}
sb.append("){}\n");
}
sb.append("}");
System.out.println(sb);
}
}