1 /* 2 * Copyright (C) 2006 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 import java.lang.reflect.Method; 18 19 /** 20 * Miranda testing. 21 */ 22 public class Main { main(String[] args)23 public static void main(String[] args) { 24 MirandaClass mir = new MirandaClass(); 25 System.out.println("MirandaClass:"); 26 System.out.println(" inInterface: " + mir.inInterface()); 27 System.out.println(" inInterface2: " + mir.inInterface2()); 28 System.out.println(" inAbstract: " + mir.inAbstract()); 29 30 /* try again through abstract class; results should be identical */ 31 MirandaAbstract mira = mir; 32 System.out.println("MirandaAbstract / MirandaClass:"); 33 System.out.println(" inInterface: " + mira.inInterface()); 34 System.out.println(" inInterface2: " + mira.inInterface2()); 35 System.out.println(" inAbstract: " + mira.inAbstract()); 36 mira.callMiranda(); 37 38 MirandaAbstract mira2 = new MirandaClass2(); 39 System.out.println("MirandaAbstract / MirandaClass2:"); 40 System.out.println(" inInterface: " + mira2.inInterface()); 41 System.out.println(" inInterface2: " + mira2.inInterface2()); 42 System.out.println(" inAbstract: " + mira2.inAbstract()); 43 mira2.callMiranda(); 44 45 System.out.println("Test getting miranda method via reflection:"); 46 try { 47 Class<?> mirandaClass = Class.forName("MirandaAbstract"); 48 Method mirandaMethod = mirandaClass.getDeclaredMethod("inInterface"); 49 System.out.println(" did not expect to find miranda method"); 50 } catch (NoSuchMethodException nsme) { 51 System.out.println(" caught expected NoSuchMethodException"); 52 } catch (Exception e) { 53 System.out.println(" caught unexpected exception " + e); 54 } 55 } 56 } 57