mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			785 B
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			785 B
		
	
	
	
		
			Java
		
	
	
	
| 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);
 | |
|   }
 | |
| }
 |