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);
 | 
						|
  }
 | 
						|
}
 |