Funktion aus array aufrufen

Status
Nicht offen für weitere Antworten.

guni

Bekanntes Mitglied
Hallo,

ich möchte (muss) ein Java Programm schreiben, dem man als Kommandozeilenparameter den Namen der aufzurufenden Methode übergeben kann!

gibts da eine schöne möglichkeit?

evtl. plane ich auch, meine Methode in ein Array zu schreiben; sthg. like:
Code:
<?> methodarray = new <?>[]{
    Methode1,
    Methode2,
    Methode3,
    Methode4,
    Methode5,
    Methode6,
    Methode7,
    Methode8,
    Methode9,
    Methode10,
}
dann möchte ich das array im code so aufrufen können:
Code:
foreach(<?> method : methodarray){
    method(param_1, ... param_n)
}

in der Perl Welt ist das kein Problem - ich hatte damit die Möglichkeiten, dass sie Methoden in der Datenbank "registrieren" und von "fremden" Klassen aufrufen zu lassen ;-)

wie könnte ich das in JAVA umsetzen?
gibt es hier function pointer oder sowas nettes???

mfg, guni
 
M

maki

Gast
ich möchte (muss) ein Java Programm schreiben, dem man als Kommandozeilenparameter den Namen der aufzurufenden Methode übergeben kann!
Methode schön und gut, hoffe dass das Objekt zumindest feststeht zu der die Methode gehört.

Mit reflection geht das, aber "schön" ist anders.

evtl. plane ich auch, meine Methode in ein Array zu schreiben; sthg. like:
Methoden in Arrays???
Methoden gehören zu Objekten, zumindest zu Klassen, kannst dir ja das Strategy Muster ansehen.

gibt es hier function pointer oder sowas nettes???
Natürlich nicht, das gibt es bei primitiven (und) manchen Scriptsprachen ;)

Darf man fragen wie man auf so etwas kommt?
klingt sehr sehr schräg.
 
S

SlaterB

Gast
man kann sich auch auf eine Methode einigen,
und nur verschiedene Objekte zu anonymen inneren Klassen haben, die dann die eigentliche Aufgabe übernehmen:

Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        Worker a = new Worker()
            {
                public void work()
                {
                    System.out.println("Huhu");
                }
            };
        Worker b = new Worker()
            {
                public void work()
                {
                    System.out.println(5 + 5);
                }
            };

        Map<String, Worker> map = new HashMap<String, Worker>();
        map.put("x", a);
        map.put("y", b);


        String parameter = "y";
        map.get(parameter).work();

        for (Worker w : map.values())
        {
            w.work();
        }
    }
}

interface Worker
{
    public void work();
}

als Parameter ginge ein beliebiges Object oder Object[]
 
M

maki

Gast
Naja, C ist zwar auch eine Hochsprache, aber eine primitive *g*
 

ARadauer

Top Contributor
sind funktions paointer nicht geplant?
mit javascript hab ich da schon manchmal sehr perverse sachen getrieben ;-)

ich setz in java bei sochen sachen oft das command pattern ein, aber das ist eh das was SlaterB da zeigt....
 

Janus

Bekanntes Mitglied
Code:
interface Func
{
  doStuff( Object... args );
}

Func[] arr = usw.

for( Func func : arr )
   func.doStuff( args );

oder so in der art
 

guni

Bekanntes Mitglied
Hallo,

hatte grad 2 Tage Auszeit an meinem "Projekt" und sehe, dass die meisten von euch dahingehend argumentieren, für jede Methode ein eigenes Objekt zu erstellen um der main dann ein Objekt als Parameter zu übergeben ...
na ja - ich werd mein Problem mal konkeretisieren.

Mein Programm rufe ich auf mit

java -jar programm.jar parameter_1, ... ,parameter_n

wobei parameter_1 die gewünschte Methode sein soll und parameter_2 - parameter_n dann die parameter, die der Methode übergeben werden.
d.h. in der main / meinem Konstruktor soll dann nur mehr stehen:

parameter_1(parameter_2, ... ,parameter_n);

je nach Namen des parameter_1 soll dann die richtige Funktion aufgerufen werden ...

versteht ihr, was ich meine?!
wie könnte ich das umsetzen? / gibt es eine schönere Lösung (bitte keine IF-Abfragen!!!)

lg, guni
 
S

SlaterB

Gast
deine Frage wurde erschöpfend beantwortet,
wenn mehr Möglichkeiten da wären, dann wären sie auch (ebenso mehrfach) genannt worden ;)
 

guni

Bekanntes Mitglied
Hallo,

in einem eurer posts steht folgendes:
Code:
HashMap<String, Worker>();
da ich sehr verschiedene Objekte habe, erzeuge ich meine HashMap so:
Code:
HashMap<String,Object>();
allerdings weiß ich, dass jedes dieser Objekte das gleiche Interface implementiert ...
kann ich beim Festlegen meiner HashMap irgendwie sagen, dass ich meine Values auf Objects beschränken möchte, die dieses Interface implementieren?
d.h. irgendwas in der Form:
Code:
MashMap<String,Object implements someInterface>

weiß da wer weiter?
danke.

guni
 
S

SlaterB

Gast
MashMap ist gut ;)

und muss es nicht
HashMap<String, ? extends MyInterface>();
sein?
 
B

Beni

Gast
Nein:

"HashMap<String,X>" ist eine HashMap die X's oder Unterklassen von X als Wert akzeptiert.

"HashMap<String, ? extends X>" ist eine HashMap von der man nicht weiss, was er jetzt genau akzeptiert. Man weiss nur, dass wenn man was von ihr liest, dass man dann mindestens ein X bekommt (schreibender Zugriff ist nicht möglich, da wir niemals ein ? erzeugen können).
 
S

SlaterB

Gast
wo ich wohl wieder war..
das kann man hier nur so gebrauchen und ist nicht soo relevant ;)

Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        Map<String, CoolWorker> map1 = new HashMap<String, CoolWorker>();
        letThemWork(map1);
    }

    public static void letThemWork(Map<String, ? extends Worker> map)
    {
        for (Worker w : map.values())
        {
            w.work();
        }
    }
}

interface Worker
{
    public void work();
}

interface CoolWorker
    extends Worker
{

}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
7 Gibts in Java ne Funktion, die ein ganzes Array ausgibt Allgemeine Java-Themen 11
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
S Validation Annotation Funktionsparameter vs Funktion vs Attribut Allgemeine Java-Themen 0
R Variablen String mit split-Funktion aufteilen Allgemeine Java-Themen 7
A Serialize - Add Funktion Allgemeine Java-Themen 1
B Discord Bot - Funktion wird nicht aufgerufen Allgemeine Java-Themen 1
A Variablen Funktion übergibt den Wert nicht Allgemeine Java-Themen 13
J Überschriebene Funktion soll nicht die super Funktion aufrufen Allgemeine Java-Themen 4
Aruetiise Funktion(y = mx+n) in String speichern und berechnen Allgemeine Java-Themen 9
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
MiMa ArrayList Rückgabewerte aus einer Funktion Allgemeine Java-Themen 15
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
A Plot funktion applet Allgemeine Java-Themen 4
S Methoden "Unschöne" Break-Anweisung aus verschachtelter Funktion entfernen Allgemeine Java-Themen 11
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
T Best Practice MD5 Funktion Allgemeine Java-Themen 9
perlenfischer1984 Testng : Funktion mit mehreren Parametern testen Allgemeine Java-Themen 5
L Stack overflow bei einer endrekursiven Funktion (Anwendung: Spezialform des Package Merge) Allgemeine Java-Themen 4
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
O JNA Zugriff auf Funktion aus DLL Allgemeine Java-Themen 0
Lord.Djerun (Taschenrechner) jButtons mit gleicher Funktion zusammenfassen Allgemeine Java-Themen 6
I Javafx Open/Read und Tree Funktion Allgemeine Java-Themen 14
C Generic-Funktion nur bei bestimmten Typen erlauben Allgemeine Java-Themen 6
F Classpath als Argument in Funktion übergeben Allgemeine Java-Themen 3
H SHA256 update-Funktion Allgemeine Java-Themen 3
J Methoden Abgeänderte Fibonacci Funktion Allgemeine Java-Themen 2
G Polymorphie Funktion als Parameter Allgemeine Java-Themen 8
F Funktion nur in einem Zeitraum Allgemeine Java-Themen 5
H java.util.Timer und Funktion mit SQL Exception Allgemeine Java-Themen 5
M Anzahl der Durchläufe einer Funktion errechnen Allgemeine Java-Themen 6
J Autofill Funktion Uhrzeit Allgemeine Java-Themen 19
G Timeout funktion zu einer Eventlogabfrage Allgemeine Java-Themen 2
M Funktion gesucht: Text vektorisieren Allgemeine Java-Themen 20
K Warum wartet diese Funktion auf beenden des Threads? Allgemeine Java-Themen 3
N JNI Callback Funktion Allgemeine Java-Themen 8
D Problem bei der Darstellung einer trigonometrischen Funktion Allgemeine Java-Themen 2
E Funktion sperren bis Unterfunktionen ferig sind Allgemeine Java-Themen 3
D Referenz einer Funktion aus einer anonymen Klasse? Allgemeine Java-Themen 3
J Funktion zu einer Uhrzeit/datum ausführen Allgemeine Java-Themen 4
S eigene Update Funktion Allgemeine Java-Themen 5
Ark Name für Funktion gesucht Allgemeine Java-Themen 5
Screen Eine mathematische Funktion als Argument für eine Methode - Matheparser? Allgemeine Java-Themen 21
Daniel_L Bug in Copy-Funktion bei HTML-Editorpane? Allgemeine Java-Themen 4
multiholle Aufrufer einer Funktion ermitteln Allgemeine Java-Themen 13
W JMF- Player.getDuration() Funktion spinnt Allgemeine Java-Themen 2
C JTextComponent - mit Schlagwörter Funktion aufrufen Allgemeine Java-Themen 2
SuperSeppel13 php-funktion aufrufen Allgemeine Java-Themen 5
M get Funktion von Vector Allgemeine Java-Themen 4
V Wie Enum an Funktion "übergeben" ? Allgemeine Java-Themen 4
G Webserver Funktion Allgemeine Java-Themen 3
S Random funktion in einer Grafischen Oberfläche Allgemeine Java-Themen 10
C Funktion stoppt alles Allgemeine Java-Themen 7
P Funktion vorhanden - wie auf Transitivität erweitern? Allgemeine Java-Themen 6
N Funktion als Parameter einer anderen Funktion Allgemeine Java-Themen 5
lumo Row Header ist public, zeigt die funktion aber nicht public Allgemeine Java-Themen 8
P Unterschied zwischen Funktion und Methoden Allgemeine Java-Themen 3
B E-Funktion mit Java Allgemeine Java-Themen 9
S verstehe diese Funktion nicht Allgemeine Java-Themen 6
S Referenz auf Funktion? Allgemeine Java-Themen 16
K Funktion unabhängig vom Namen aufrufen Allgemeine Java-Themen 5
F Vorteile -> Funktion Allgemeine Java-Themen 2
P gegenstück zur php funktion gzinflate()? Allgemeine Java-Themen 3
D Problem bei Aufruf einer Funktion Allgemeine Java-Themen 3
J Welche Daten für Ative-X Funktion? Allgemeine Java-Themen 5
X Replay Funktion realisieren? Allgemeine Java-Themen 5
J Funktion alle Möglichkeiten berücksichtigen Allgemeine Java-Themen 5
P DLL Funktion benutzen Allgemeine Java-Themen 3
S Fortran Funktion mit JNI aufrufen: java.lang.UnsatisfiedLink Allgemeine Java-Themen 2
T Pipe-Funktion - Prozente falsch? Allgemeine Java-Themen 8
A undo funktion in Malprogramm Allgemeine Java-Themen 15
J Method.invoke -> Exceptions der Funktion abfangen Allgemeine Java-Themen 5
M Frage zu resume funktion bei downloadmanager Allgemeine Java-Themen 7
M Funktion liest nach Textaus aus der vorigen Zeile Allgemeine Java-Themen 2
G nichtabstrakte Funktion zu einer Interface hinzufügen Allgemeine Java-Themen 6
M Funktion des JRE Allgemeine Java-Themen 8
B Nach Deserialisieren: Elemente des JFrames ohne Funktion Allgemeine Java-Themen 5
A funktion schiffeZeichnen zwei mal aufrufen Allgemeine Java-Themen 16
P Suche String Tutorial zu Suche&Ersetze Funktion von text Allgemeine Java-Themen 35
D Mathematische Funktion grafisch in Java darstellen Allgemeine Java-Themen 2
L sin cos funktion Allgemeine Java-Themen 5
L return-Funktion Allgemeine Java-Themen 5
L return Funktion Allgemeine Java-Themen 6
M Funktion als Parameter oder andere Möglichkeit Allgemeine Java-Themen 3
H Funktion aus einer anderen Klasse ausführen Allgemeine Java-Themen 3
TRunKX Gibt es ne fertige Java Funktion die Dateien vergleicht? Allgemeine Java-Themen 4
M Funktion wird nicht durchlaufen. Allgemeine Java-Themen 13
G Bilder zeichnen und Zoom Funktion Allgemeine Java-Themen 2
G java funktion in JSP file aufrufen. Allgemeine Java-Themen 2
K funktion aus einem String aufrufen Allgemeine Java-Themen 9
L C# Funktion in Java aufrufen Allgemeine Java-Themen 4
thE_29 Funktion mit Funktionaufrufen Allgemeine Java-Themen 4
G Funktion, die langsam wächst Allgemeine Java-Themen 7
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32

Ähnliche Java Themen

Neue Themen


Oben