diff options
Diffstat (limited to 'libjava/testsuite/libjava.lang/ProxyTest.java')
-rw-r--r-- | libjava/testsuite/libjava.lang/ProxyTest.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/ProxyTest.java b/libjava/testsuite/libjava.lang/ProxyTest.java new file mode 100644 index 0000000..46689b4 --- /dev/null +++ b/libjava/testsuite/libjava.lang/ProxyTest.java @@ -0,0 +1,37 @@ +import java.lang.reflect.*; + +interface Twas +{ + Object brillig(); +} + +interface Slithy +{ + void toves(int gyre); +} + +public class ProxyTest +{ + static class MyInvocationHandler implements InvocationHandler + { + public Object invoke(Object proxy, Method method, Object[] args) + { + System.out.println (method.getDeclaringClass()); + System.out.println (args == null + ? args + : args.getClass().getName()); + return this; + } + } + + public static void main(String[] argv) + throws InstantiationException, IllegalAccessException + { + Twas wabe + = (Twas)Proxy.newProxyInstance(ProxyTest.class.getClassLoader(), + new Class[] { Slithy.class, Twas.class }, + new MyInvocationHandler()); + wabe.brillig(); + ((Slithy)wabe).toves(2); + } +} |