⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fieldmodifierspy.java

📁 java tutorial.sun公司官方出品。java入门书籍。最新版
💻 JAVA
字号:
/* * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *   - Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer. * *   - Redistributions in binary form must reproduce the above copyright *     notice, this list of conditions and the following disclaimer in the *     documentation and/or other materials provided with the distribution. * *   - Neither the name of Sun Microsystems nor the names of its *     contributors may be used to endorse or promote products derived *     from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -