import java.lang.reflect.Proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.net.*; public class TestProxy { public static class MyInvocationHandler implements InvocationHandler { public Object invoke (Object proxy, Method method, Object[] args) throws Throwable { System.out.println (args[0]); return null; } } public static void main (String[] args) { try { InvocationHandler ih = new MyInvocationHandler(); SocketOptions c = (SocketOptions) Proxy.newProxyInstance (SocketOptions.class.getClassLoader(), new Class[]{SocketOptions.class}, ih); c.getOption (555); } catch (Exception e) { e.printStackTrace (); } } }