Java反射----Field的getModifiers()方法返回int类型值表示该字段的修饰符
来源:互联网 发布:注册造价师网络课程 编辑:程序博客网 时间:2024/05/16 14:44
如何判断类或变量、方法的修饰符,可以使用Java反射机制中,Field的getModifiers()方法返回int类型值表示该字段的修饰符,即这个方法就是返回一个int型的返回值,代表类、成员变量、方法的修饰符。
其中,该修饰符是java.lang.reflect.Modifier的静态属性。
对应表如下:
PUBLIC: 1
PRIVATE: 2
PROTECTED: 4
STATIC: 8
FINAL: 16
SYNCHRONIZED: 32
VOLATILE: 64
TRANSIENT: 128
NATIVE: 256
INTERFACE: 512
ABSTRACT: 1024
STRICT: 2048
Modifier提供了很多静态方法。如public static String toString(int mod)就可以输出该整数对应的所有的修饰符。public static boolean isPublic(int mod)就可以判断该整数对应的是不是包含public修饰符。
通过Modifier的isPublic、isPrivate、isStatic等方法,可以判断是否包含某些修饰符,现在如果有这么一个需求,我需要找到仅有public static两个修饰符的变量。
现在看下Modifier的源码,可以看到以下代码:
public static final int PUBLIC = 0x00000001;
public static final int PRIVATE =0x00000002;
public static final int PROTECTED = 0x00000004;
public static final int STATIC =0x00000008;
public static final int FINAL =0x00000010;
public static final int SYNCHRONIZED = 0x00000020;
.....................
把它们转换成二进制,可以看出,Modifier使用一个二进制的位来表示是否包含某个修饰符。
如果是public static,对应的整数就是二进制的:1001,也就是9。
如果是public static final就是11001,也就是25。
现在如果想判断是否仅有public static两个修饰符,那么就可以判断是否field.getModifiers() == 25。
- Java反射----Field的getModifiers()方法返回int类型值表示该字段的修饰符
- Field的getModifiers()方法返回int类型值表示该字段的修饰符
- Field的getModifiers()方法返回int类型值表示该字段的修饰符
- Field的getModifiers()方法返回int类型值表示该字段的修饰符
- Field的getModifiers()方法返回int类型值表示该字段的修饰符
- java反射Field的getModifiers()方法 返回值
- 关于反射获取方法或变量的修饰符method和field的getModifiers
- 关于Java中方法重写的访问修饰符和返回值类型的限制
- Java反射(二):检测类的修饰符和类型
- Java反射,字段Field
- java技巧:反射判断field类型方法
- getModifiers()返回值
- Java反射字段类型的判断
- 通过反射获取方法返回的类型
- C#中的反射:返回指定类型的字段
- Dalvik字节码的类型,方法与字段表示方法
- Dalvik字节码的类型方法与字段表示方法
- 使用MyBatis查询int类型字段,返回NULL值时报异常的解决方法
- spark on yarn
- crack me160题 第六题(序号28) Cosh.2 答案
- Android ViewPager 如何判断当前页面是从前一页还是后一页滑动过来
- Spring Boot 2.0.0参考手册_中英文对照_Part III_19-22
- DjangoForm内容补充以及MOdels的F Q
- Java反射----Field的getModifiers()方法返回int类型值表示该字段的修饰符
- 函数的功能
- Algorithms 4th_1.1 basic programming model
- RBAC模块
- java io,只有OutputStream和Writer
- 关于计算机网络的相关知识
- Angular2表单<2>模型驱动的表单(Model-Driven Forms)
- Linux学习之:七种文件类型
- c语言程序练习二