Kann man nicht public Methoden via reflection auslesen

Luxor

Mitglied
Hi,

kurze Frage:
Kann man nicht public Methoden via Reflection auslesen? In der API steht das man mit getMethods() nur public Methoden bekäme.

Hier eine Beispielauslesemethode
Code:
   public static void showMethods( Object o )
  {
    Class c = o.getClass();
    Method theMethods[] = c.getMethods();
    String erg = "";
    System.out.println("Es gibt "+theMethods.length+" soviele Methoden");
    for ( int i = 0; i < theMethods.length; i++ )
    {
      // Modifier
      int modifierString = theMethods[i].getModifiers();
      System.out.print(Modifier.toString(modifierString) + " " );
      erg = Modifier.toString(modifierString) + " ";
      // Rückgabewert
      String returnString =
        theMethods[i].getReturnType().getName();
      System.out.print( returnString + " " ); 
      // Methodenname
      String methodString = theMethods[i].getName();
      System.out.print( methodString + "(" );
      // Parameter
      Class parameterTypes[] = theMethods[i].getParameterTypes();
      
      for ( int k = 0; k < parameterTypes.length; k ++ ) {
		
	System.out.print(parameterTypes[k].toString());
    
        if ( k < (parameterTypes.length - 1) ){System.out.print( ", " );}       
      }
      System.out.print( ")");
      // Exceptions
      Class exceptions[] = theMethods[i].getExceptionTypes();
      if ( exceptions.length > 0 ) {
        System.out.print(" throws ");
        for ( int k = 0; k < exceptions.length; k++ ) {
          System.out.print( exceptions[k].getName() );
          if ( k < (exceptions.length - 1))
            System.out.print(", ");
        }
      }
      System.out.println();
    }
  }
 
Zuletzt bearbeitet von einem Moderator:
Sorry,

hat sich geklärt - hab den Wald vor lauter Bäumen nicht gesehen. :(
Wenns interressiert statt getMethods() einfach
getDeclaredMethods() nehmen.

cya Luxor
 
Zurück