1ec022295682131fd8ebd4619343060fd3554319bDan Bornstein/* 2ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * Copyright (C) 2010 The Android Open Source Project 3ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * 4ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * Licensed under the Apache License, Version 2.0 (the "License"); 5ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * you may not use this file except in compliance with the License. 6ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * You may obtain a copy of the License at 7ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * 8ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * http://www.apache.org/licenses/LICENSE-2.0 9ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * 10ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * Unless required by applicable law or agreed to in writing, software 11ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * distributed under the License is distributed on an "AS IS" BASIS, 12ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * See the License for the specific language governing permissions and 14ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * limitations under the License. 15ec022295682131fd8ebd4619343060fd3554319bDan Bornstein */ 16ec022295682131fd8ebd4619343060fd3554319bDan Bornstein 17ec022295682131fd8ebd4619343060fd3554319bDan Bornsteinimport java.lang.reflect.Method; 18ec022295682131fd8ebd4619343060fd3554319bDan Bornstein 19ec022295682131fd8ebd4619343060fd3554319bDan Bornstein/** 20ec022295682131fd8ebd4619343060fd3554319bDan Bornstein * Test reflection on old-style inner classes. 21ec022295682131fd8ebd4619343060fd3554319bDan Bornstein */ 22ec022295682131fd8ebd4619343060fd3554319bDan Bornsteinpublic class Main { 23ec022295682131fd8ebd4619343060fd3554319bDan Bornstein private static Runnable theRunnable = new Runnable() { 24ec022295682131fd8ebd4619343060fd3554319bDan Bornstein public void run() { } 25ec022295682131fd8ebd4619343060fd3554319bDan Bornstein }; 26ec022295682131fd8ebd4619343060fd3554319bDan Bornstein 27ec022295682131fd8ebd4619343060fd3554319bDan Bornstein private static Runnable create() { 28ec022295682131fd8ebd4619343060fd3554319bDan Bornstein return new Runnable() { 29ec022295682131fd8ebd4619343060fd3554319bDan Bornstein public void run() { } 30ec022295682131fd8ebd4619343060fd3554319bDan Bornstein }; 31ec022295682131fd8ebd4619343060fd3554319bDan Bornstein } 32ec022295682131fd8ebd4619343060fd3554319bDan Bornstein 33ec022295682131fd8ebd4619343060fd3554319bDan Bornstein private static String nameOf(Class clazz) { 34ec022295682131fd8ebd4619343060fd3554319bDan Bornstein return (clazz == null) ? "(null)" : clazz.getName(); 35ec022295682131fd8ebd4619343060fd3554319bDan Bornstein } 36ec022295682131fd8ebd4619343060fd3554319bDan Bornstein 37ec022295682131fd8ebd4619343060fd3554319bDan Bornstein private static String nameOf(Method meth) { 38ec022295682131fd8ebd4619343060fd3554319bDan Bornstein return (meth == null) ? "(null)" : meth.toString(); 39ec022295682131fd8ebd4619343060fd3554319bDan Bornstein } 40ec022295682131fd8ebd4619343060fd3554319bDan Bornstein 41ec022295682131fd8ebd4619343060fd3554319bDan Bornstein private static void infoFor(Class clazz) { 42ec022295682131fd8ebd4619343060fd3554319bDan Bornstein System.out.println("Class: " + nameOf(clazz) + "\n" + 43ec022295682131fd8ebd4619343060fd3554319bDan Bornstein " getDeclaringClass(): " + 44ec022295682131fd8ebd4619343060fd3554319bDan Bornstein nameOf(clazz.getDeclaringClass()) + "\n" + 45ec022295682131fd8ebd4619343060fd3554319bDan Bornstein " getEnclosingClass(): " + 46ec022295682131fd8ebd4619343060fd3554319bDan Bornstein nameOf(clazz.getEnclosingClass()) + "\n" + 47ec022295682131fd8ebd4619343060fd3554319bDan Bornstein " getEnclosingMethod(): " + 48ec022295682131fd8ebd4619343060fd3554319bDan Bornstein nameOf(clazz.getEnclosingMethod())); 49ec022295682131fd8ebd4619343060fd3554319bDan Bornstein } 50ec022295682131fd8ebd4619343060fd3554319bDan Bornstein 51ec022295682131fd8ebd4619343060fd3554319bDan Bornstein public static void main(String args[]) { 52ec022295682131fd8ebd4619343060fd3554319bDan Bornstein infoFor(theRunnable.getClass()); 53ec022295682131fd8ebd4619343060fd3554319bDan Bornstein infoFor(create().getClass()); 54ec022295682131fd8ebd4619343060fd3554319bDan Bornstein } 55ec022295682131fd8ebd4619343060fd3554319bDan Bornstein} 56