前言
在复习Java基础的过程中发现了Field类里有一个modifiers的成员变量,而且是一个int的值,就找到了使用的它的地方
发现它被传入Modifier静态方法
Modifier
可以看到将传入的值,和一个常量值进行‘与’运算,这里发现大致是一个标志位的校验,最低的一位若是1,那么他代表拥有这个modifiers值的对象是被public修饰的
果然不出我们所料,这个Modifier类维护了一个由int值四个字节的32位的标志位,每一位代表不同的含义
还有将标志位,转为String类型,这样调用toString方法,我们也可以知道这个对象被哪些修饰符所修饰,modifiers的每一位代表不同的修饰符
代表多个标志位的modifiers;如PUBLIC最低位是二进制数01(0x00000001),PRIVATE最低位是二进制数10(0x00000002),那么11就代表PUBLIC和PRIVATE,当然Java中没有同时被PUBLIC和PRIVATE的对象;
总结
- Modifier不仅仅是Filed所独有的,Filed是类的成员变量,能被修饰的不仅仅是成员变量,方法、类、局部变量、代码块等等都是应该有modifiers的这样一个int值,去代表对象被哪些修饰符所修饰
- Modifier类里的静态可以对modifiers的int值,进行转换,查看是否被某个修饰符所修饰