Class类中的getEnclosing*getDeclared*与getDeclaringClass的区别
Posted 茅坤宝骏氹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Class类中的getEnclosing*getDeclared*与getDeclaringClass的区别相关的知识,希望对你有一定的参考价值。
一、getEnclosing* 当前类在……中闭合
Class<?> |
getEnclosingClass() 返回底层类的立即封闭类。 |
Constructor<?> |
getEnclosingConstructor()
如果该 Class 对象表示构造方法中的一个本地或匿名类,则返回 Constructor
对象,它表示底层类的立即封闭构造方法。 |
Method |
getEnclosingMethod()
如果此 Class 对象表示某一方法中的一个本地或匿名类,则返回 Method
对象,它表示底层类的立即封闭方法。 |
1、getEnclosingClass(): 返回一个类,当前类在中这个类中定义,不一定是成员内部类
比如:直接定义的内部类或匿名内部类
2、getEnclosingConstructor():返回构造方法,当前类是在这个构造函数中定义
比如:构造方法中定义的匿名内部类
3、getEnclosingMethod():返回方法,当前类是在这个方法中定义
比如:方法中定义的匿名内部类
二、getDeclaringClass 当前类声明在某类中
getDeclaringClass() :返回一个类,当前类定义在这个类作为成员
三、getDeclared* 当前类声明了……
Annotation[] |
getDeclaredAnnotations() 返回直接存在于此元素上的所有注释。 |
Class<?>[] |
getDeclaredClasses()
返回 Class 对象的一个数组,这些对象反映声明为此 Class
对象所表示的类的成员的所有类和接口。 |
Constructor<T> |
getDeclaredConstructor(Class<?>... parameterTypes)
返回一个 Constructor 对象,该对象反映此 Class
对象所表示的类或接口的指定构造方法。 |
Constructor<?>[] |
getDeclaredConstructors()
返回 Constructor 对象的一个数组,这些对象反映此 Class
对象表示的类声明的所有构造方法。 |
Field |
getDeclaredField(String name)
返回一个 Field 对象,该对象反映此 Class
对象所表示的类或接口的指定已声明字段。 |
Field[] |
getDeclaredFields()
返回 Field 对象的一个数组,这些对象反映此 Class
对象所表示的类或接口所声明的所有字段。 |
Method |
getDeclaredMethod(String name, Class<?>... parameterTypes)
返回一个 Method 对象,该对象反映此 Class
对象所表示的类或接口的指定已声明方法。 |
Method[] |
getDeclaredMethods()
返回 Method 对象的一个数组,这些对象反映此 Class
对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。 |
返回当前类中的成员。
比如:当前类中定义的成员内部类或接口、构造函数、成员变量、方法、注解。
以上是关于Class类中的getEnclosing*getDeclared*与getDeclaringClass的区别的主要内容,如果未能解决你的问题,请参考以下文章