java反射中的Field或Constructor对象的getModifiers方法返回值详解
主要作用:以整数形式返回该方法或该成员变量的修饰符;
其中不同的修饰符所对应的数值不同,修饰符的值与java.lang.reflect.Modifier类中的静态方法和常量的编码有关。
下面是几种常用的修饰符的编码:
这些编码全部为16进制的编码,所以对应的十进制的数字为:
public为1
private为2
protected为4
static为8
final为16
synchronize为32
volatile为64
transient为128
native为256
interface为512
abstract为1024
strict为2048
如果有多个修饰符累计出现则返回值累加!!!
例如下面的代码:
public class Student {
protected static String name;//Student对象
}
public class RerviewTest {
public static void main(String[] args) {
Class<?> clazz = Student.class;//获取Student的Class对象
try {
Field field = clazz.getDeclaredField("name");//获取成员变量name
System.out.println("!!!!!!!!!!!!!"+field.getModifiers());
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
}
//输出为12,即static的8加上protected的4