📄 privateaccesstest.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 + -