2.5.1 Member 接口
Member
接口
Method
和 Field
都实现了 java.lang.reflect.Member
接口,该接口方法如下表所示:
方法签名 | 说明 |
---|---|
Class getDeclaringClass() | 返回该成员的类的 Class 对象 |
String getName() | 返回该成员名字 |
int getModifiers() | 返回该成员的限定符,编码为 int |
注意
Class
也支持上面 3 个方法,但Class
并没有实现Member
接口。- 概念上讲,
Method
和Field
都是类的 成员(Member
)。
Java 共有 11 个限定符:
public
protected
private
static
final
abstract
native
volatile
synchronized
transient
strictfp
Modifier
类
每个限定符在 getModifiers
方法返回的 int
中占据一个 bit
位,人肉解析该值很麻烦,所以 Java 引入 Modifier
类来解析其返回值。
Modifier
类包含的方法列表如下:
方法签名 | 说明 |
---|---|
static boolean isPublic(int mod) | 判断成员的限定符是否 包含 public |
static boolean isPrivate(int mod) | 判断成员的限定符是否 包含 private |
static boolean isProtected(int mod) | 判断成员的限定符是否 包含 protected |
static boolean isStatic(int mod) | 判断成员的限定符是否 包含 static |
static boolean isFinal(int mod) | 判断成员的限定符是否 包含 final |
static boolean isSynchronized(int mod) | 判断成员的限定符是否 包含 synchronized |
static boolean isVolatile(int mod) | 判断成员的限定符是否 包含 volatile |
static boolean isNative(int mod) | 判断成员的限定符是否 包含 native |
static boolean isInterface (int mod) |
判断 mod 是否是 接口 的限定符,而非类的 |
static boolean isTransient(int mod) | 判断成员的限定符是否 包含 transient |
static boolean isAbstract(int mod) | 判断成员的限定符是否 包含 abstract |
static boolean isStrict(int mod) | 判断成员的限定符是否 包含 strictfp |