您如何从Haskell中的子线程打印毛病?-英雄云拓展知识分享
133
2023-10-25
【摘要】 本书摘自《零基础Java 从入门到精通》一书中第十二章,第1.4节,编者是零壹快学
12.1.4 获取方法的信息
通过Class类中提供的getMethod()、getMethods()、getDeclaredMethod()和getDeclaredMethods()方 法可以获取类的方法信息。它们的返回值为Method对象或者对象数组,各个方法的详细描述如表
12.1.5所示。
表12.1.5 获取类的方法信息
方法 功能描述
getMethods() 返回一个Method对象的数组,这些对象反映此Class对象所表示的类或接口的 公共方法
getMethod(String name,Class>... parameterTypes) 返回一个Method对象,它反映此Class对象所表示的类或接口的指定公共成员 方法
getDeclaredMethod(String name, Class>... parameterTypes) 返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明 方法
getDeclaredMethods() 返回一个Method对象的一个数组,这些对象反映此Class对象表示的类或接口 声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括 继承的方法
通过Method对象可以操作相应类的方法,Method类中提供的常用方法如表12.1.6所示。
表12.1.6 Method类中的常用方法
方法 功能描述
getName() 以String形式返回此Method对象表示的方法名称
getParameterTypes() 按照声明顺序返回Class对象的数组,这些对象描述了此Method对象所表示 的方法的形参类型
getReturnType() 返回一个Class对象,该对象描述了此Method对象所表示的方法的正式返回 类型
getExceptionTypes() 返回Class对象的数组,这些对象描述了声明将此Method对象表示的底层方 法抛出的异常类型
invoke(Object obj,Object... args) 对带有指定参数的指定对象调用由此Method对象表示的底层方法
第 12 章 Java反射与注解
动手写12.1.6
基 础 Java 从入门到精通
上面示例中有一个Person类,该类具有三个公共方法—— say() 、run()和swim() ,通过 getDeclaredMethods()获取Person类的所有方法信息,通过getReturnType()方法获取方法的返回值的类 型信息,通过getName()方法获取方法名称,通过getParameterTypes()方法获取方法的参数列表。其 运行结果为:
图12.1.3 获取方法信息示例
在使用上述的四种方法获取Method对象之后,可以通过Method对象的invoke()方法来调用它对 应的方法。
动手写12.1.7
第 12 章 Java反射与注解
上面示例中有一个PrintUtil工具类,该类具有三个重载的print方法,通过getMethod()获取Person 类的方法信息,然后通过调用Method类的invoke()方法来执行相应的方法。其运行结果为:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~