您的位置:首页 > 编程语言 > Java开发

java 修饰符判断

2015-06-09 11:09 387 查看
java判断字段类型修饰符的方法。

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: