Dynamische Methodenaufrufe

RealbigZ

Mitglied
Hallo!

Ich habe folgendes Problem und bitte um euren Rat.

Ich brauche eine Methode, der ich eine Methode mit Parametern (als String) übergebe,
diese wird dann aus der der Klasse herausgesucht und aufgerufen, sofern vorhanden.

Also eine Methode die folgendes macht:

Schau dir die erste Methode deiner Klasse an und vergleiche ob es die ist, die du im Parameter (String) hast. Wenn nicht nehm dir die nächste Methode in deiner Klasse vor. Mach das bis du die Methode gefunden hast oder alle Methoden ohne erfolg durchgegangen bist.
 
Hallo!

Was übergibst du als Parameter? Wie schaut der String aus?
Weshalb verwendest du nicht einfach getMethod bzw. getDeclaredMethod?
Code:
 package de.tutorials;
 
 import java.lang.reflect.Method;
 
 public class ReflectionExample {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) throws Exception {
 
 		Foo foo = new Foo();
 
 		// public void bar(String s)
 		Method m0 = foo.getClass().getDeclaredMethod("bar",
 				new Class[] { String.class });
 		m0.invoke(foo, new Object[] { "hallo" });
 
 		// public void bar(String s, String t) {
 		Method m1 = foo.getClass().getDeclaredMethod("bar",
 				new Class[] { String.class, String.class });
 		m1.invoke(foo, new Object[] { "hallo", "welt" });
 	}
 
 	static class Foo {
 		public void bar(String s) {
 			System.out.println("bar(String s) : " + s);
 		}
 
 		public void bar(String s, String t) {
 			System.out.println("bar(String s, String t) : " + s + " " + t);
 		}
 	}
 }

Gruß Tom
 
Zurück