methodenname übergeben

  • Themenstarter Themenstarter elpresident
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
E

elpresident

Gast
servus,

ich benötige dringend hilfe, und zwar möchte ich bei einer methode einen methodennamen übergeben, damit die methode je nach übergebenem methodennamen eine andere methode aufruft! wäre dies möglich und wenn ja, wie? dies ist nötig, weil ich von der klasse mit der methode, die den namen bekommen soll, mehrere objekte erstell und jedes objekt eine andere funktion ausführen soll!

vielen dank schon mal im voraus für eure hilfe,

mfg
elpresident
 
Reflection heißt das (falls für google benötigt)

ist aber für Anfänger nicht zu empfehlen und schon gar nicht für den Einsatz den du da beschreibst,
Java ist da durchaus etwas beschränkt, aber bisher ist ja noch jeder damit klargekommen,
man kann alles auch etwas natürlicher schreiben,

beschreibe also dein Problem genauer, falls alternative Lösungen für dich in Frage kommen
 
dies ist nötig, weil ich von der klasse mit der methode, die den namen bekommen soll, mehrere objekte erstell und jedes objekt eine andere funktion ausführen soll!
Also das solltest du auf jeden Fall anders lösen. 2 Objekte der gleichen Klasse bieten auch die gleichen Methoden an. Da können also auch Methoden dabei sein, die von einem Objekt gar nicht genutzt werden, von einem anderen aber schon.
 
So etwas löst man normalerweise mit Interfaces:
Code:
import java.util.*;

interface Methode {
	void doSomething();
}

class MyObject implements Methode {}

public class Test {
	public static void main(String[] args) {
		List<MyObject> list = new ArrayList<MyObject>();
		list.add(new MyObject() {
			public void doSomething() {System.out.println("Ich bin ich");}
		});
		list.add(new MyObject() {
			public void doSomething() {System.out.println("Ich auch :-)");}
		});
		list.add(new MyObject() {
			public void doSomething() {System.out.println("Ich nicht :-(");}
		});
		
		for (MyObject obbi : list)
			obbi.doSomething();
	}
}
 
Der Herr Präsident soll erstmal genauer erklären, was er wirklich will. Wenn die Objekte jeweils eine Methode mit anderer Signatur haben sollen, kannste ja das mit dem Interface vergessen...
 
Leroy42 hat gesagt.:
Code:
class MyObject implements Methode {}

Müsste hier nicht schon "doSomething()" implementiert werden?


Code:
class MyObject implements Methode { public void doSomething() { } }
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben