Java Reference
In-Depth Information
2.1.5 Beispiel
Mit Hilfe der beschriebenen Klassen und Methoden kann man ein Programm schreiben,
dem als Kommandozeilenargumente beliebig viele vollständige Klassennamen (inklusive
Package-Namen) übergeben werden und das dann u. a. die Basisklasse, die implementierten
Schnittstellen, die Attribute, die Konstruktoren und die Methoden (für die letzten drei
jeweils mit und ohne Declared) ausgibt. Um nicht zu viel Platz zu verbrauchen, wird in
Listing 2.1 nur ein Ausschnitt des Programms gezeigt; das vollständige Programm ist von
der angegebenen Web-Seite erhältlich.
Listing 2.1 Programm zur Ausgabe der Eigenscha en einer Klasse (ohne Generics)
package javacomp.basics;
import java.lang.reflect.*;
public class Reflector
{
public static void main(String[] args)
{
if(args.length == 0)
{
System.out.println("arguments: list of class names");
}
for(String className: args)
{
analyze(className);
System.out.println("=================================");
}
}
private static void analyze(String className)
{
try
{
String headline = className + ":";
System.out.println(headline);
printUnderlined(headline.length());
Class<?> c = Class.forName(className);
...
System.out.println(" declared methods:");
Method[] declaredMethods = c.getDeclaredMethods();
handleMethods(declaredMethods);
System.out.println(" methods:");
Method[] methods = c.getMethods();
handleMethods(methods);
}
catch(ClassNotFoundException e)
{
System.out.println(className + ": not found");
}
}
 
Search WWH ::




Custom Search