Java-Method类常用方法总结
最新推荐文章于 2025-07-17 21:20:54 发布
转载
最新推荐文章于 2025-07-17 21:20:54 发布
·
3.2k 阅读
·
3
·
15
文章标签:
#method
#java
Java
专栏收录该内容
6 篇文章
订阅专栏
本文详细介绍了Java反射API中的Method类,包括其意义、常用方法及其功能,如invoke()、getAnnotatedReturnType()等,帮助理解如何动态调用方法及获取方法信息。
该文章参考至:https://blog.csdn.net/Goodbye_Youth/article/details/84036809,本文章仅仅修改了一些个人的理解
一、Method方法的意义
用于获取当前运行方法的信息
二、包含的常用方法
invoke():参数为类的具体实例对象,实现对方法的动态调用getAnnotatedReturnType():返回一个AnnotatedType对象,表示该方法/构造函数的返回类型getAnnotatedExceptionTypes():返回一个AnnotatedType对象数组,表示该方法/构造函数声明的异常getAnnotatedReceiverType():返回一个AnnotatedType对象,表示该方法/构造函数的接收者类型getAnnotatedParameterTypes():返回一个AnnotatedType对象数组,表示方法/构造函数的形式参数类型getAnnotation(Class annotationClass):如果该方法对象存在指定类型的注解,则返回该注解,否则返回nullgetDeclaredAnnotation(Class annotationClass):如果该方法对象存在指定类型的注解,则返回该注解,否则返回null,只有类级别的注解会被继承得到,对于其他对象而言,getAnnotation() 方法与 getDeclaredAnnotation() 方法作用相同getAnnotationsByType(Class annotationClass):如果该方法对象存在指定类型的注解,则返回该注解数组,否则返回null,只有类级别的注解会被继承得到,对于其他对象而言,getAnnotationsByType() 方法与 getDeclaredAnnotationsByType() 方法作用相同,getAnnotationsByType() 方法与 getAnnotation() 方法的区别在于 getAnnotationsByType() 方法会检查修饰该方法对象的注解是否为可重复类型注解,如果是则会返回该参数类型的一个或多个注解,@Repeatable 用于声明注解为可重复类型注解,当声明为可重复类型注解后,如果方法注解仍为一个,则 getAnnotation() 方法会正常返回,如果方法注解为多个,则 getAnnotation()方法会返回nullgetDeclaredAnnotationsByType(Class annotationClass):如果该方法对象存在指定类型的注解,则返回该注解数组,否则返回nullgetAnnotations()、getDeclaredAnnotations():返回该方法对象上的所有注解,如果没有注解,则返回空数组getModifiers(): 返回修饰该方法对象修饰符的整数形式,使用 Modifier 类对其进行解码:Modifier.toString(method.getModifiers())getName():返回方法对象名称isAnnotationPresent(Class extends Annotation> annotationClass):如果该方法对象上有指定类型的注解,则返回true,否则为falseisVarArgs():如果该方法对象的参数中存在 可变参,则返回true,否则为falsegetDeclaringClass ():返回方法所在类的Class对象getParameterAnnotations():返回一组注解数组,这些注解以声明顺序修饰该方法对象的参数getParameterCount():返回该方法对象的参数个数getParameters():返回一个参数对象数组,该数组表示该方法对象的所有参数getDefaultValue():返会该注解方法对象表示的成员默认值,如果成员属于基本数据类型,则返回对应的包装类实例,如果没有默认值或者该方法实例不表示注解方法,则返回nullgetParameterTypes():返回一个Class对象数组,该数组以声明顺序表示该方法对象的参数对象,会擦除泛型getReturnType():返回一个Class对象,该Class对象表示该方法对象的返回对象,会擦除泛型getGenericReturnType():返回一个Type对象,该Type对象表示该方法对象的返回类型,会保留泛型getExceptionTypes():返回一个Class对象数组,该数组表示由该方法对象抛出的异常对象,会擦除泛型getGenericExceptionTypes():返回一个Type对象数组,该数组表示由该方法对象抛出的异常类型,会保留泛型getTypeParameters():返回一个TypeVariable对象数组,该数组表示该方法对象声明列表上的类型变量数组toString():返回该方法对象的字符串表示形式toGenericString():返回该方法对象的字符串表示形式,会保留泛型isAccessible():获取该方法对象的可访问标志setAccessible(boolean flag):设置该方法对象的可访问标志,在其他类里调用该方法对象时,如果该方法为私有方法,需要设置访问标志为true,否则会报异常isDefault():判断该方法对象是否为默认方法,如果是则返回true,否则为falseisSynthetic():判断该方法对象是否为合成方法,如果是则返回true,否则为falsisBridge():判断该方法对象是否桥接方法,如果是则返回true,否则为false
!