谁帮写一段代码
功能
给定包名类名后
可以查出这个类中有什么属性,属性类型
有什么方法,方法的参数,参数个数
我知道用反射机制,麻烦帮写一下
注释一下
[b]问题补充:[/b]
获得方法参数的名称是用什么方法?
[b]问题补充:[/b]
我想获得完整的方法
比润 public String print(String s)
java反射
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
10条回答 默认 最新
- wei_jing 2009-04-26 00:10关注
[code="java"]
package utils;import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;public class ReflectTest {
/** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub Class clazz = Class.forName("utils.FileUtils"); Field[] fields = clazz.getDeclaredFields(); Method[] methods = clazz.getDeclaredMethods(); System.out.println("--------------- 属性如下 -----------------"); for(Field field : fields){ int mod = field.getModifiers(); System.out.println(Modifier.toString(mod) //取得修饰符 + " " + field.getType().getName() //取得类型名 + " " + field.getName()); //取得属性名 } System.out.println("--------------- 方法如下 -----------------"); for(Method method : methods){ StringBuffer methodBuffer = new StringBuffer(); int mod = method.getModifiers(); methodBuffer.append(Modifier.toString(mod)) //取得修饰符 .append(" ").append(method.getReturnType().getName()) //取得返回值类型 .append(" ").append(method.getName()) //取得方法名 .append("("); for(Class ss : method.getParameterTypes()){ methodBuffer.append(ss.getName()).append(","); //取得参数 } methodBuffer.deleteCharAt(methodBuffer.lastIndexOf(",")); //去掉最后一个"," methodBuffer.append(")"); System.out.println(methodBuffer.toString()); //打印输出 } }
}
[/code]
[quote]我想获得完整的方法
比润 public String print(String s)[/quote]据我所知,是不能通过反射获得方法的具体参数,如上面的s,因为Java的Class文件根本就不会存储一个方法的参数名。不过你的这个要求可以通过一些第三方类库来完成,比如:ParaNamer(具体内容参考它的官方网站http://paranamer.codehaus.org/)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于logstash转发日志时发生的部分内容丢失问题
- ¥17 pro*C预编译“闪回查询”报错SCN不能识别
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 如何用python向钉钉机器人发送可以放大的图片?