public static void probeObject ( Object o ) { Class c = o . getClass ( ) ; Class interfaces [ ] = c . getInterfaces ( ) ; Class parent = c . getSuperclass ( ) ; Method m [ ] = c . getMethods ( ) ; System . out . println ( "********* OBJECT PROBE *********" ) ; System . out . println ( "Class Name: " + c . getName ( ) ) ; System . out . println ( "Super Class: " + parent . getName ( ) ) ; System . out . println ( "Interfaces: " ) ; for ( int i = 0 ; i < interfaces . length ; i ++ ) { System . out . println ( " " + interfaces [ i ] . getName ( ) ) ; } System . out . println ( "Methods:" ) ; for ( int i = 0 ; i < m . length ; i ++ ) { Class params [ ] = m [ i ] . getParameterTypes ( ) ; Class excepts [ ] = m [ i ] . getExceptionTypes ( ) ; Class ret = m [ i ] . getReturnType ( ) ; System . out . print ( " " + ret . getName ( ) + " " + m [ i ] . getName ( ) + "(" ) ; for ( int j = 0 ; j < params . length ; j ++ ) { if ( j > 0 ) System . out . print ( ", " ) ; System . out . print ( params [ j ] . getName ( ) ) ; } System . out . print ( ") throws " ) ; for ( int j = 0 ; j < excepts . length ; j ++ ) { if ( j > 0 ) System . out . print ( ", " ) ; System . out . print ( excepts [ j ] . getName ( ) ) ; } System . out . println ( "" ) ; } System . out . println ( "******************" ) ; }
Show me lots of stuff about the passed in object