A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© doevents 中级黑马   /  2013-9-22 22:13  /  1023 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.lang.reflect.*;
public class ReflectTest06
{
public static void main(String[] args) throws Exception{
  
  //获取类
  Class c = Class.forName("java.lang.String");
  //获取所有的方法
  Method[] ms = c.getDeclaredMethods();
  
  /*
  for(Method m:ms){
   //修饰符
   System.out.println(Modifier.toString(m.getModifiers()));
   //方法的返回值类型
   Class returnType = m.getReturnType();
   System.out.println(returnType.getSimpleName());
   //方法名
   System.out.println(m.getName());
   //方法的形式参数列表
   Class[] parameterTypes = m.getParameterTypes();
   for(Class parameterType:parameterTypes){
    System.out.println(parameterType.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[] parameterTypes = m.getParameterTypes();
   for(int i=0;i<parameterTypes.length;i++){
    Class parameterType = parameterTypes[i];
    if(i==parameterTypes.length-1){
     sb.append(parameterType.getSimpleName());
    }else{
     sb.append(parameterType.getSimpleName()+",");
    }
   
   }
   sb.append("){}\n");
  }
  sb.append("}");
  System.out.println(sb);
}
}
希望对大家有帮助。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1 感谢分享,最好再写上自己的思路及感言~.

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马