ClassLoader classLoader = ClassLoader.getSystemClassLoader(); Class<?> clazz = classLoader.loadClass("com.example.MyClass"); Class<?> clazz = Class.forName("com.example.MyClass"); Object obj = clazz.newInstance(); Method method = clazz.getMethod("myMethod"); method.invoke(obj); interface MyInterface { void myMethod(); } class MyOriginalClass implements MyInterface { public void myMethod() { System.out.println("Original method invoked."); } } class MyInvocationHandler implements InvocationHandler { private Object target; public MyInvocationHandler(Object target) { this.target = target; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("Before method invocation."); Object result = method.invoke(target, args); System.out.println("After method invocation."); return result; } } public class Main { public static void main(String[] args) { MyInterface originalObj = new MyOriginalClass(); InvocationHandler handler = new MyInvocationHandler(originalObj); MyInterface proxyObj = (MyInterface) Proxy.newProxyInstance(originalObj.getClass().getClassLoader(), new Class<?>[] { MyInterface.class }, handler); proxyObj.myMethod(); } }


上一篇:
下一篇:
切换中文