Java反射-方法

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java反射-方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

使用反射可以检视类的方法,并在运行时调用。这是通过类java.lang.reflect.Method实现的。本文将深入介绍Method对象。

获得方法对象

Method通过Class对象获得。示例代码如下:

Class aClass = ...//oBTain class object Method[] methods = aClass.getMethods();

Method[] 数组拥有一个类定义的所有公共方法的实例。
如果知道方法参数的精确类型,有比获得所有方法更优的(获得方法的方式)。本例中,名为doSomething的方法需要一个String类型的参数:

Class  aClass = ...//obtain class object Method method =    aClass.getMethod("DOSomething", new Class[]{String.class});

如果没有方法匹配给定的方法名和参数,如例子中的String.class,将抛出NoSuchMethodException
如果你尝试访问没有参数的方法,传null代替参数数组,如下:

Class  aClass = ...//obtain class object Method method = aClass.getMethod("doSomething", null);

方法参数和返回值类型

你可以通过如下代码获得方法的参数类型列表:

Method method = ... // obtain method - see above Class[] parameterTyPEs = method.getParameterTypes();

访问方法返回值的代码如下:

Method method = ... // obtain method - see above Class returnType = method.getReturnType();

使用方法对象调用方法

调用方法的代码如下:

//get method that takes a String as argument Method method = MyObject.class.getMethod("doSomething", String.class); Object returnValue = method.invoke(null, "parameter-value1");

null参数是拥有你想调用方法的实例。如果方法是静态的,传null代替类实例。本例中,如果doSomething(String.class) 不是静态的,必须传有效的MyObject类的实例代替null
Method.invoke(Object target, Object ... parameters)方法的参数是可变参,但你调用时必须保证型参、实参一一对应。本例中,方法需要一个String,所以必须提供一个String类型的参数。

脚本宝典总结

以上是脚本宝典为你收集整理的Java反射-方法全部内容,希望文章能够帮你解决Java反射-方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。