15d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/* 25d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Copyright (C) 2010 The Android Open Source Project 35d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * 45d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Licensed under the Apache License, Version 2.0 (the "License"); 55d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * you may not use this file except in compliance with the License. 65d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * You may obtain a copy of the License at 75d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * 85d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * http://www.apache.org/licenses/LICENSE-2.0 95d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * 105d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Unless required by applicable law or agreed to in writing, software 115d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * distributed under the License is distributed on an "AS IS" BASIS, 125d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * See the License for the specific language governing permissions and 145d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * limitations under the License. 155d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */ 165d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 175d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaoimport java.lang.reflect.Method; 185d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 195d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/** 205d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Test reflection on old-style inner classes. 215d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */ 225d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaopublic class Main { 235d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao private static Runnable theRunnable = new Runnable() { 245d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao public void run() { } 255d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao }; 265d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 275d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao private static Runnable create() { 285d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao return new Runnable() { 295d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao public void run() { } 305d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao }; 315d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 325d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 335d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao private static String nameOf(Class clazz) { 345d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao return (clazz == null) ? "(null)" : clazz.getName(); 355d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 365d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 375d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao private static String nameOf(Method meth) { 385d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao return (meth == null) ? "(null)" : meth.toString(); 395d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 405d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 415d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao private static void infoFor(Class clazz) { 425d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.println("Class: " + nameOf(clazz) + "\n" + 435d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao " getDeclaringClass(): " + 445d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao nameOf(clazz.getDeclaringClass()) + "\n" + 455d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao " getEnclosingClass(): " + 465d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao nameOf(clazz.getEnclosingClass()) + "\n" + 475d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao " getEnclosingMethod(): " + 485d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao nameOf(clazz.getEnclosingMethod())); 495d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 505d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 515d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao public static void main(String args[]) { 525d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao infoFor(theRunnable.getClass()); 535d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao infoFor(create().getClass()); 545d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 555d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao} 56