java反射调用某个类的方法(带参数和不带参数)

java反射调用某个类的方法(带参数和不带参数)

ID:13879348

大小:41.50 KB

页数:7页

时间:2018-07-24

java反射调用某个类的方法(带参数和不带参数)_第1页
java反射调用某个类的方法(带参数和不带参数)_第2页
java反射调用某个类的方法(带参数和不带参数)_第3页
java反射调用某个类的方法(带参数和不带参数)_第4页
java反射调用某个类的方法(带参数和不带参数)_第5页
资源描述:

《java反射调用某个类的方法(带参数和不带参数)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Class类:public getDeclaredMethod( name,                                  ... parameterTypes)                           throws ,                                  返回一个 Method对象,该对象反映此 Class对象所表示的类或接口的指定已声明方法。name参数是一个 String,它指定所需方法的简称,parameterTypes参数是 Class对象的一个数

2、组,它按声明顺序标识该方法的形参类型。如果在某个类中声明了带有相同参数类型的多个方法,并且其中有一个方法的返回类型比其他方法的返回类型都特殊,则返回该方法;否则将从中任选一个方法。如果名称是 "” 或 “",则引发一个 NoSuchMethodException。 参数:name- 方法名 parameterTypes- 参数数组 返回:该类与指定名和参数相匹配的方法的 Method对象 抛出:- 如果找不到匹配的方法。 - 如果 name为 null- 如果存在安全管理器 s,并满足下列任一条件

3、: ·调用 拒绝访问已声明方法 ·调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对 的调用拒绝访问该类的包 从以下版本开始:JDK1.1   Method类: public invoke( obj,                       ... args)                throws ,                       ,                       对带有指定参数的指定对象调用由此 Method对象表示的底层方法。个别参数被自动解包,以便与基本形参相匹配,基本

4、参数和引用参数都随需服从方法调用转换。 如果底层方法是静态的,那么可以忽略指定的 obj参数。该参数可以为 null。 如果底层方法所需的形参数为 0,则所提供的 args数组长度可以为 0 或 null。 如果底层方法是实例方法,则使用动态方法查找来调用它,这一点记录在 Java Language Specification, Second Edition 的第 15.12.4.4 节中;在发生基于目标对象的运行时类型的重写时更应该这样做。 如果底层方法是静态的,并且尚未初始化声明此方法的类,则会将其初始化。 如果方法正常

5、完成,则将该方法返回的值返回给调用者;如果该值为基本类型,则首先适当地将其包装在对象中。但是,如果该值的类型为一组基本类型,则数组元素不被包装在对象中;换句话说,将返回基本类型的数组。如果底层方法返回类型为 void,则该调用返回 null。 参数:obj- 从中调用底层方法的对象 args- 用于方法调用的参数 返回:使用参数 args在 obj上指派该对象所表示方法的结果 抛出:- 如果此 Method对象强制执行 Java 语言访问控制,并且底层方法是不可访问的。 - 如果该方法是实例方法,且指定对象参数不是声明底层方

6、法的类或接口(或其中的子类或实现程序)的实例;如果实参和形参的数量不相同;如果基本参数的解包转换失败;如果在解包后,无法通过方法调用转换将参数值转换为相应的形参类型。 - 如果底层方法抛出异常。 - 如果指定对象为 null,且该方法是一个实例方法。 - 如果由此方法引起的初始化失败。 这个动态调用类的方法非常好用,可以根据字符串动态调用某个类的方法,灵活性大,但记住反射是比较耗效率,要保留的用。可以这么用,通过一个文本来解析,动态实现某个类的计算方法,通过一个文本就可以方便的调用方法的机制。比较灵活。  下面是代码,已经封

7、装好了: /* * To change this template, choose Tools 

8、 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

9、.Logger;/** * * @author Administrator * 用来通过类名反射当前类的某个方法,包括带参数的方法,当然只可以是public的方法 */public class ClassMethod {    /**     * @param args the comma

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。