Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Methoden als Parameter an andere Methoden übergeben

887 views
Skip to first unread message

Johannes Lichtenberger

unread,
Jul 17, 2010, 12:31:30 PM7/17/10
to
Hallo,

in C usw. gibt es ja Zeiger auf Funktionen als Parameter. Nun habe ich
bspw. eine Methode, die ihrerseits zwei andere Methoden aufruft, aber
eigentlich von mehreren Klassen genutzt werden könnte, wobei lediglich
die intern aufgerufenen Methoden anders implementiert werden müssten.

Wie setze ich das am besten in Java um?

Viele Grüße,
Johannes

Malte Schirmacher

unread,
Jul 17, 2010, 12:43:10 PM7/17/10
to

interface Callback
{
public void callback();
}

[…]

void doSomeStuff(Callback c)
{
c.callback();
}


z.b.


> Viele Grüße,
> Johannes

Johannes Lichtenberger

unread,
Jul 17, 2010, 3:28:03 PM7/17/10
to

Danke, ich hab jetzt ein Interface erstellt mit 3 Methoden, eine
abstrakte Klasse, die eine Methode implementiert und weitere Klassen die
die abstrakte Klasse erweitern und die restlichen Methoden, welche aus
der einen Methode der abstrakten Klasse aufgerufen werden implementieren :-)

Viele Grüße,
Johannes

Wanja Gayk

unread,
Jul 18, 2010, 6:07:29 AM7/18/10
to
Johannes Lichtenberger said...

Eigentlich sollte man das in Java vermeiden, aber du kannst auch mit
Method m = MyClass.getMethod("myMethod")
die Methode einer Klasse holen und diese dann mit
Object reult = m.invoke(zielObjektDerLlasse, parameter)
ausführen.

In Java ist es aber eher üblich dafür ein Interface oder eine abstrakte
Klasse zu implementieren.

Gruß,
-Wanja-

--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]

--- news://freenews.netfront.net/ - complaints: ne...@netfront.net ---

Sebastian Rothbucher

unread,
Jul 19, 2010, 3:57:46 AM7/19/10
to
> --- news://freenews.netfront.net/ - complaints: n...@netfront.net ---

Hallo, ich denke die nächste (und gleichzeitig sauberste) Methode ist
ein Command Pattern (wurde oben schon kurz angerissen).
Soll also in verschiedenen Ausführungen eine Methode public String
machWas(String param1, int param2) aufgerufen werden könnte man
hingehen und
1.) ein Interface mit genau dieser einen Methode schreiben, also
public Interface MachWasCommand {
public String machWas(String param1, int param2);
}
und
2.) die Implementierung als innerClass übergeben, also
Macher.setMachWasCommand(new MachWasCommand(){
public String machWas(String param1, int param){
return "Aufruf mit "+param1+" und "+param2;
}
});
was dazu führt, das im Macher ein Aufruf von
getMachWasCommand().machWas("bla", 88);
möglich wird...
Ich hoffe das hilft - auf jeden Fall good luck!
Sebastian Rothbucher

0 new messages