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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王德升 中级黑马   /  2012-8-11 19:50  /  1157 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王德升 于 2012-8-11 23:03 编辑







import java.lang.reflect.Field;  
import java.lang.reflect.Method;  
import java.lang.reflect.Modifier;  
  
public class MyReflect {  
  
    /**
     * @param  args
     */  
    public static void main(String[] args) throws Exception{

        // TODO Auto-generated method stub  
  
        Class clazz = Class.forName("cn.itcast");

        Field[] fields = clazz.getDeclaredFields();  

        Method[] methods = clazz.getDeclaredMethods();  

        

        
        for(Method m : methods){  

            StringBuffer methodBuffer = new StringBuffer();

            int mod = m.getModifiers();  

            methodBuffer.append(Modifier.toString(mod))  

                        .append(" ").append(method.getReturnType().getName())//这里是取回返回值,为什么要添加一个空的字符串呢?

                        .append(" ").append(method.getName())  

                        .append("(");  

            for(Class s : method.getParameterTypes()){  

                methodBuffer.append(s.getName()).append(",");  //这里取得参数为什么append里面要加个逗号呢?

            }  //这里的逗号要不要去掉呢?
            

            methodBuffer.append(")");  

               

            System.out.println(methodBuffer.toString());   
        }  
         
    }  
  
}

4 个回复

倒序浏览

import java.lang.reflect.Field;  
import java.lang.reflect.Method;  
import java.lang.reflect.Modifier;  
  
public class MyReflect {  
  
    /**
     * @param  args
     */  
    public static void main(String[] args) throws Exception{

        // TODO Auto-generated method stub  
  
        Class clazz = Class.forName("cn.itcast");

        Field[] fields = clazz.getDeclaredFields();  

        Method[] methods = clazz.getDeclaredMethods();  

        

        
        for(Method m : methods){  

            StringBuffer methodBuffer = new StringBuffer();

            int mod = m.getModifiers();  

            methodBuffer.append(Modifier.toString(mod))  

                        .append(" ").append(method.getReturnType().getName())//这里是打印方法声明,加空格是为了好看,不连在一起,Modifier.toString(mod)是返回限定符,然后加个空格,然后是返回类型,然后再回个空格,然后是方法名,然后是括号,加空格就是为了分隔声明中的各个成分

                        .append(" ").append(method.getName())  

                        .append("(");  

            for(Class s : method.getParameterTypes()){  

                methodBuffer.append(s.getName()).append(",");  //这里是参数列表,参数之间要用逗号分隔啊,你自已好好想想

            }  //
            

            methodBuffer.append(")");  

               

            System.out.println(methodBuffer.toString());   
        }  
         
    }  
  
}
回复 使用道具 举报
这个是打印方法声明,楼主想下方法声明是什么样的,各部分间要有空格,参数间要有逗号
回复 使用道具 举报
杨震 发表于 2012-8-11 20:01
import java.lang.reflect.Field;  
import java.lang.reflect.Method;  
import java.lang.reflect.Modif ...

谢谢    一时憋住了
回复 使用道具 举报
嗯,不知道这个东西,执行后输出是否多了个 “逗号”呢?我觉得在
for(Class s : method.getParameterTypes()){  

                methodBuffer.append(s.getName()).append(",");  //这里是参数列表,参数之间要用逗号分隔啊,你自已好好想想

            }  //
后应该有一个
删除最后一个逗号的句子。
否则输出时会再方法里面多了个逗号。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马