mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
import java.lang.reflect.*;
 | 
						|
 | 
						|
interface one
 | 
						|
{
 | 
						|
  int n(int N);
 | 
						|
}
 | 
						|
 | 
						|
interface two
 | 
						|
{
 | 
						|
  int nn(int N);
 | 
						|
}
 | 
						|
 | 
						|
interface three
 | 
						|
{
 | 
						|
  int nnn(int N);
 | 
						|
}
 | 
						|
 | 
						|
class arse implements one, two
 | 
						|
{
 | 
						|
  public int n(int N) { return N; }
 | 
						|
  public int nn(int N) { return N*2; }
 | 
						|
}
 | 
						|
 | 
						|
class arsey implements two, one, three
 | 
						|
{
 | 
						|
  public int n(int N) { return N*4; }
 | 
						|
  public int nn(int N) { return N*8; }
 | 
						|
  public int nnn(int N) { return N*16; }
 | 
						|
}
 | 
						|
 | 
						|
public class InvokeInterface extends arse
 | 
						|
{
 | 
						|
  int f ()
 | 
						|
  {
 | 
						|
	return flunk.nn(1);
 | 
						|
  }
 | 
						|
  static two flunk = new arse();
 | 
						|
  static three flunkey = new arsey();
 | 
						|
  public static void main(String[] s) throws Throwable
 | 
						|
  {
 | 
						|
	Class[] argtypes = {Integer.TYPE};
 | 
						|
	Method m = two.class.getMethod("nn", argtypes);
 | 
						|
	Object[] args = {new Integer(1)};
 | 
						|
	System.out.println(flunk.nn(1));
 | 
						|
	System.out.println(m.invoke(new arse(), args));
 | 
						|
	m = arse.class.getMethod("nn", argtypes);
 | 
						|
	System.out.println(m.invoke(new arse(), args));
 | 
						|
	m = two.class.getMethod("nn", argtypes);
 | 
						|
	System.out.println(m.invoke(new arsey(), args));
 | 
						|
	m = three.class.getMethod("nnn", argtypes);
 | 
						|
	System.out.println(m.invoke(new arsey(), args));	
 | 
						|
	m = arsey.class.getMethod("nnn", argtypes);
 | 
						|
	System.out.println(m.invoke(new arsey(), args));	
 | 
						|
  }
 | 
						|
}
 |