package javacodebook.misc.ref_use; import java.lang.reflect.*; /** * Instantiierung eines Objektes und Benutzung der Methoden mithilfe von * Reflection demonstrieren. */ public class ClassUse { public static void main(String[] args) throws Exception { // Die Klasse StringBuffer Class clazz = Class.forName("java.lang.StringBuffer"); // Die Parameter mitsamt ihrem Inhalt für den Konstruktor // der Klasse StringBuffer definieren. Class consTypes[] = { Class.forName("java.lang.String") }; Object consData[] = { "Donauschiff" }; // Parameter und deren Inhalt für die Methode "insert" // definieren. Class methTypes[] = { Integer.TYPE, String.class }; Object methData[] = { new Integer(5), "dampf" }; // Den Konstruktor und die Methode "insert" holen. Constructor constructor = clazz.getConstructor(consTypes); Method method = clazz.getMethod("insert", methTypes); // Jetzt das Objekt erzeugen und die Methode ausführen Object clazzObj = constructor.newInstance(consData); method.invoke(clazzObj, methData); // Das Resultat ausgeben System.out.println("Resultat: " + clazzObj.toString()); } }