java 修饰符判断
2015-06-09 11:09
387 查看
java判断字段类型修饰符的方法。
JDK源码
数学解释:
本例中 mod = mod = FINAL+STATIC+PRIVATE
isFinal = mod&FINAL = (FINAL+STATIC+PRIVATE)&FINAL
按位与,可以发现 isFinal = FINAL&FINAL + STATIC&FINAL + PRIVATE&FINAL
= 1+0+0+0
=1
说明,是final的。
按位与,只有1&1等于1 ,其余情况为0,那么只有修饰符自身&自身为1。
package com.recflect; import java.lang.reflect.Field; import java.lang.reflect.Modifier; public class ModifierProcess { private static final String ALL_STRING = "123"; public static void main(String[] args) throws SecurityException, NoSuchFieldException { Class<?> class1 = ModifierProcess.class; Field field = class1.getDeclaredField("ALL_STRING"); int mod = field.getModifiers(); System.out.println(Modifier.isFinal(mod)); System.out.println(Modifier.isStatic(mod)); System.out.println(Modifier.isPrivate(mod)); } }判断原理解释:
JDK源码
public static boolean isFinal(int mod) { return (mod & FINAL) != 0; }
数学解释:
本例中 mod = mod = FINAL+STATIC+PRIVATE
isFinal = mod&FINAL = (FINAL+STATIC+PRIVATE)&FINAL
按位与,可以发现 isFinal = FINAL&FINAL + STATIC&FINAL + PRIVATE&FINAL
= 1+0+0+0
=1
说明,是final的。
按位与,只有1&1等于1 ,其余情况为0,那么只有修饰符自身&自身为1。
相关文章推荐
- 【原创首发】针对java初学者的环境变量配置工具
- Eclipse Other Projects小问题
- Java web学习入门
- java处理barCode条形码
- java实现条形码
- jdk 1.6 javax.script使用
- Spring 依赖注入的三种形式
- java.util.concurrent.locks.LockSupport
- spring
- java 中final 和 static
- struts2中<s:url>中文自动编码问题
- Android studio导入eclipse项目
- FatJar for Eclipse4.4(Luna)
- java入门
- java定义和实现接口
- struts2和servlet共存的几种方法
- ID3决策树预测的java实现
- java获取src路径,也就是拼全路径
- Eclipse下properties文件中文乱码的解决方案
- spring数据源配置