通过反射机制获取所有方法(method)
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
/*
java.lang.Method
*/
public class ReflectTest09 {
public static void main(String[] args) throws ClassNotFoundException {
//创建class对象
Class c=Class.forName("java.lang.String"); // com.shige.Reflect.CustomerService
//创建字符串缓存区
StringBuffer stringBuffer=new StringBuffer();
//创建属性对象
Field[] fields=c.getDeclaredFields();
//获取每个属性的各个部分
stringBuffer.append(" " + Modifier.toString(c.getModifiers())+" class " +c.getSimpleName()+"{\n");
stringBuffer.append("// 属性部分\n");
for (Field field:fields) {
stringBuffer.append(" " + Modifier.toString(field.getModifiers())+" "+field.getType().getSimpleName()+" "+field.getName()+";\n");
}
//获取方法对象
Method[] methods=c.getDeclaredMethods();
//获取方法得各个部分
stringBuffer.append("// 方法部分\n");
for (Method method:methods ) {
stringBuffer.append("\t");
stringBuffer.append(Modifier.toString(method.getModifiers())+" ");
stringBuffer.append(method.getReturnType().getSimpleName()+" ");
stringBuffer.append(method.getName()+"(");
//获取形参
Class[] parametterTypes= method.getParameterTypes();
for (int i=0;i<parametterTypes.length;i++) {
Class parametterType=parametterTypes[i];
//判断是否为最后一个形参,如果不是就不再最后加逗号,是得话就加一个逗号。
if(i!=parametterTypes.length-1){
stringBuffer.append(parametterType.getSimpleName()+",");
}else{
stringBuffer.append(parametterType.getSimpleName());
}
}
stringBuffer.append("){}\n");
}
//输出
System.out.println(stringBuffer);
}
}