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
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: