- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java反射调用某个类的方法(带参数及不带参数)
Class类:
public?getDeclaredMethod(?name,???????????????????????????????????...?parameterTypes)???????????????????????????throws?,??????????????????????????????????
返回一个?Method对象,该对象反映此?Class对象所表示的类或接口的指定已声明方法。name参数是一个?String,它指定所需方法的简称,parameterTypes参数是?Class对象的一个数组,它按声明顺序标识该方法的形参类型。如果在某个类中声明了带有相同参数类型的多个方法,并且其中有一个方法的返回类型比其他方法的返回类型都特殊,则返回该方法;否则将从中任选一个方法。如果名称是?init”?或?“clinit,则引发一个?NoSuchMethodException。?
参数:
name-?方法名?
parameterTypes-?参数数组?
返回:
该类与指定名和参数相匹配的方法的?Method对象?
抛出:
-?如果找不到匹配的方法。?
-?如果?name为?null
-?如果存在安全管理器?s,并满足下列任一条件:?
调用?拒绝访问已声明方法?
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对?的调用拒绝访问该类的包?
从以下版本开始:
JDK1.1?
?
?
Method类:
?
public?invoke(?obj,???????????????????????...?args)????????????????throws?,???????????????????????,???????????????????????
对带有指定参数的指定对象调用由此?Method对象表示的底层方法。个别参数被自动解包,以便与基本形参相匹配,基本参数和引用参数都随需服从方法调用转换。?
如果底层方法是静态的,那么可以忽略指定的?obj参数。该参数可以为?null。?
如果底层方法所需的形参数为?0,则所提供的?args数组长度可以为?0?或?null。?
如果底层方法是实例方法,则使用动态方法查找来调用它,这一点记录在?Java?Language?Specification,?Second?Edition?的第??节中;在发生基于目标对象的运行时类型的重写时更应该这样做。?
如果底层方法是静态的,并且尚未初始化声明此方法的类,则会将其初始化。?
如果方法正常完成,则将该方法返回的值返回给调用者;如果该值为基本类型,则首先适当地将其包装在对象中。但是,如果该值的类型为一组基本类型,则数组元素不被包装在对象中;换句话说,将返回基本类型的数组。如果底层方法返回类型为?void,则该调用返回?null。?
参数:
obj-?从中调用底层方法的对象?
args-?用于方法调用的参数?
返回:
使用参数?args在?obj上指派该对象所表示方法的结果?
抛出:
-?如果此?Method对象强制执行?Java?语言访问控制,并且底层方法是不可访问的。?
-?如果该方法是实例方法,且指定对象参数不是声明底层方法的类或接口(或其中的子类或实现程序)的实例;如果实参和形参的数量不相同;如果基本参数的解包转换失败;如果在解包后,无法通过方法调用转换将参数值转换为相应的形参类型。?
-?如果底层方法抛出异常。?
-?如果指定对象为?null,且该方法是一个实例方法。?
-?如果由此方法引起的初始化失败。
?
这个动态调用类的方法非常好用,可以根据字符串动态调用某个类的方法,灵活性大,但记住反射是比较耗效率,要保留的用。可以这么用,通过一个文本来解析,动态实现某个类的计算方法,通过一个文本就可以方便的调用方法的机制。比较灵活。
?
?
下面是代码,已经封装好了:
?
/*?*?To?change?this?template,?choose?Tools?|?Templates?*?and?open?the?template?in?the?editor.?*/package?com.jijing.method;
import?java.lang.reflect.InvocationTargetException;import?java.lang.reflect.Method;import?java.util.logging.Level;import?java.util.logging.Logger;
/**?*?*?@author?Administrator?*?用来通过类名反射当前类的某个方法,包括带参数的方法,当然只可以是public的方法?*/public?class?Class
您可能关注的文档
- GoldenPeakHotel员工手则.doc
- GRE阅读难句精解—杨鹏难句.doc
- GSRM情侣特辑之新“花千骨”.doc
- Groupon风波启示—摆脱资本玩弄寻求新生机.doc
- GS教师用报参考NO10(19—20期).doc
- GS教师用报参考NO8(15—16期).doc
- Gpeejx基准论文格式要求范本[超全].doc
- GridTechnology在校园网中应用研究.doc
- GW350㎏—280KW中频无芯感应熔炼炉体使用说明书.doc
- Gwizpb财务的管理制度模板.doc
- GIS软件:ESRI ArcGIS二次开发_(12).ArcGIS插件开发.docx
- 2025版弱电施工劳务合同.docx
- 山东东阿阿胶集团有限责任公司校园招聘模拟试题附带答案详解审定版.docx
- 2025版材料采购合同(含风险评估)标准范本.docx
- 2025版有限合伙企业的合伙协议范本.docx
- 山东东阿阿胶集团有限责任公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版附答.docx
- 2025版建筑材料采购合同质量标准与施工进度管理.docx
- 2024年高级会计师之高级会计实务押题练习试题A卷含答案 .pdf
- 2025版彩钢板建筑工程材料采购与结算合同.docx
- 2025版我国电子商务法律机制的构建.docx
最近下载
- 急诊与灾难医学-第二十二章 人为灾难的医学救援.pptx
- 030904《项目实施进度里程碑确认单》.xlsx VIP
- 治疗篇第六章骨伤科四肢病证推拿讲解.ppt
- 2025年广西机场管理集团有限责任公司人员招聘笔试备考题库及答案解析.docx
- 七年级下册英语课件Unit 3《Keep Fit》(Section A 1a-1d).pptx VIP
- 福特嘉年华说明书.pdf
- 医院医疗设备管理员及使用人员岗位职责.pptx VIP
- 江苏省小学科学实验知识竞赛题库附答案.pdf VIP
- 教科版(2017秋)四年级下册科学期末复习训练题(含答案).docx VIP
- 八年级下数学期中测试题(a卷).pdf VIP
文档评论(0)