public class DynamicProxyDemo { public static void main(String[] clargs){ Foo prox= (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(), new Class[]{Foo.class}, new InvocationHandler() { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("InvocationHandler called"+"\n\t Method="+method); if(args!=null){ System.out.println("\targs="); for(int i=0;i<args.length;i++){ System.out.println("\t\t"+args[i]); } } return null; } }); prox.f("hello"); prox.g(47); prox.h(47,"hello"); } }