脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。