Day15_86_通过反射机制获取所有方法(method)

通过反射机制获取所有方法(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);

      }
  }
posted @ 2021-04-10 17:10  失昼  阅读(66)  评论(0)    收藏  举报