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

📄 privateaccesstest.java

📁 《透视Java》的源码
💻 JAVA
字号:
package covertjava.visibility;import java.awt.*;import java.lang.reflect.Method;import covertjava.chat.MainFrame;/** * <p>Gives public access to private class members</p> * <p>Copyright: Copyright (c) 2004 Sams Publishing</p> * @author Alex Kalinovsky * @version 1.0 */public class PrivateAccessTest {    public static void main(String[] args) throws Exception {        System.out.println("Testing private access");        Container container = createTestContainer();        if (container.getLayout() instanceof BorderLayout) {            BorderLayout layout = (BorderLayout)container.getLayout();            Component center = getChild(layout, BorderLayout.CENTER);            System.out.println("Center component = " + center);        }        else            System.out.println("Container does not use BorderLayout");    }    public static Component getChild(BorderLayout layout, String key) throws Exception {        Class[] paramTypes = new Class[]{String.class, boolean.class};        Method method = layout.getClass().getDeclaredMethod("getChild", paramTypes);        // Private methods are not accessible by default        method.setAccessible(true);        Object[] params = new Object[] {key, new Boolean(true)};        Object result = method.invoke(layout, params);        return (Component)result;    }    public static Container createTestContainer() throws Exception {        MainFrame frame = new MainFrame(false);        return frame.getContentPane();    }}

⌨️ 快捷键说明

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