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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾辉 黑马帝   /  2012-1-31 14:55  /  1201 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曾辉 于 2012-2-3 14:46 编辑

一个方法类的参数能否通过设置成泛型或者什么来接收反射的CLASS。

1 个回复

正序浏览
本帖最后由 王_涛 于 2012-1-31 15:22 编辑

Method m = obj.getClass().getDeclaredMethod(String name, Class<?>... parameterTypes)
直接这样就可以反射到你的方法,而且调用时,m.invoke(Object obj, Object... args)
里面的参数也全是Object的。你要想实现多态的话,那你要传的参数是继承自最顶层的Object了,那就必须得判断了,如果是你自己的一个类的话,就直接可以把父类对象当成方法的参数,然后可以传子类的对象

obj 是对象;
name是对象的方法名;
Class<?>... parameterTypes 是方法的参数列表的class类型;
args 是方法的参数;

参见API
java.lang.Class<T>
java.lang.reflect.Method

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马