fieldmodifierspy.java

来自「JAVA 工作指南 可以说是程序员必备的东西哦」· Java 代码 · 共 58 行

JAVA
58
字号
import java.lang.reflect.Field;import java.lang.reflect.Modifier;import static java.lang.System.out;enum Spy { BLACK , WHITE }public class FieldModifierSpy {    volatile int share;    int instance;    class Inner {}    public static void main(String... args) {	try {	    Class<?> c = Class.forName(args[0]);	    int searchMods = 0x0;	    for (int i = 1; i < args.length; i++) {		searchMods |= modifierFromString(args[i]);	    }	    Field[] flds = c.getDeclaredFields();	    out.format("Fields in Class '%s' containing modifiers:  %s%n",		       c.getName(),		       Modifier.toString(searchMods));	    boolean found = false;	    for (Field f : flds) {		int foundMods = f.getModifiers();		// Require all of the requested modifiers to be present		if ((foundMods & searchMods) == searchMods) {		    out.format("%-8s [ synthetic=%-5b enum_constant=%-5b ]%n",			       f.getName(), f.isSynthetic(),			       f.isEnumConstant());		    found = true;		}	    }	    if (!found) {		out.format("No matching fields%n");	    }        // production code should handle this exception more gracefully	} catch (ClassNotFoundException x) {	    x.printStackTrace();	}    }    private static int modifierFromString(String s) {	int m = 0x0;	if ("public".equals(s))           m |= Modifier.PUBLIC;	else if ("protected".equals(s))   m |= Modifier.PROTECTED;	else if ("private".equals(s))     m |= Modifier.PRIVATE;	else if ("static".equals(s))      m |= Modifier.STATIC;	else if ("final".equals(s))       m |= Modifier.FINAL;	else if ("transient".equals(s))   m |= Modifier.TRANSIENT;	else if ("volatile".equals(s))    m |= Modifier.VOLATILE;	return m;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?