Funktionspointer oder ähnliches in Java? sdk 1.4

  • Themenstarter Themenstarter rkasel
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
R

rkasel

Gast
Hallo,

bin eigentlich recht fit in Java. Leider kenne ich keine 'Funktion' bzw. Möglichkeit, wie ich mir Funktionsnamen zusammenbasteln kann um sie dann aufzurufen. (In C++ gibts da Funktionspointer)

Z. B.:


Code:
private String to_print;          //auszugebender text
private String function_call;

function_call = "print" + "ln(" + to_print + ");";

....

Und dann den String als Quelltext interpretieren lassen. Der Rückgabewert der Funktion soll dabei auch verwendet werden können. ???:L



Hat jemand von euch nen Rat?


Vielen Dank im Vorraus,

Gruß,
Rolf
 
Code:
class Abc{
      
}

class KlasseFinden{
    public KlasseFinden(){
          String name = "Abc";
          Class c = Class.forName(name);
          Object o = c.newInstance();
    }
}


Zum ausführen von methoden gibt es die Funktion Methode#invoke, les einfach ma in der api nach, ist selbserklärend..
 
Jo, ich denke Refelection ist eh nicht die Lösung darfür, denn der Sinn dieses Funktionszeiger ist ja eine Methode ausführen zu können von der die zugehörige Instanz, dessen Klasse und der Name der Methode unbekannt sind.
Ich würde für so etwas einfach das Runnable Interface nutzen:
Sagen wir haben eine Methode doThat, die einen 'Funktionszeiger' übergeben kommt, denn sie dann 10 mal ausführen soll:

Code:
...
public static void doThat (Runnable todo){
   for(int i  = 0; i< 10; i++){
      todo.run();
  }
}
...

 in der Benutzung sieht das dann so aus:

final TestKlasse obj = new TestKlasse();
...
Runnable huhuFunction = new Runnable(){
     public void run()
           obj.huhu();    
     }    
}
...

doThat(huhuFunction);

...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben