ich eine Liste von Methoden erhalten kann, die kein Problem mit Anmerkungen versehen werden ...Java-Reflektion eine Methode als Parameter einer anderen Methode übergeben?
Method[] m = clazz.getDeclaredMethods();
Nun möchte Ich mag die Methode zu übergeben [x] zu einer Funktion. Zum Beispiel ...
router.get("/").handler(RoutingContext handler)
Ich möchte es an den Handler als eine Methodenreferenz übergeben.
In 8 Java können wir tun, nur router.get("/").handler(this::myMethod)
Aktualisiert Beispiel:
public void myFunction() throws Exception {
Router routes = Router.router(...);
Handler<RoutingContext> handler = this::myHandler;
routes.route("/").handler(handler);
routes.route("/someOtherRoute").handler(this::anotherHandler);
}
public void myHandler(final RoutingContext rcs) {
rcs.doSomething();
}
Ich möchte die Funktion myHandler mit Anmerkungen zu versehen, damit ich es reflektiv finden und fügen Sie es dem „Router“ . So mit Reflexion kann ich eine Liste von Methoden erhalten, die kein Problem und dann für jeden fügen Sie es zu meinem Router mit Anmerkungen versehen sind ...
Also sage ich einige „web“ anotations haben ...
@GET
public void myHandler(final RoutingContext rcs) {
rcs.doSomething();
}
@POST
public void anotherHandler(final RoutingContext rcs) {
rcs.doSomething();
}
Ich kann diese Methoden mit Reflektion auflisten. Cool kein Problem. Aber dann möchte ich sie als Methodenreferenzen an router.handler() übergeben, wie im obigen Beispiel gezeigt ...
Wenn Sie es nicht für ein Web-Framework erraten haben und nein, ich werde es nicht auf die wild, nicht wie wir einen anderen brauchen. Es ist für Lernzwecke lol.
aktualisieren
Router vom Typ: https://github.com/vert-x3/vertx-web/blob/master/vertx-web/src/main/java/io/vertx/ext/web/Router.java und
Und Hander Teil ist vertx.io
Suchen Sie, wie in der Reflexion die spezifische Methode mit Namen zu bekommen? – mhasan
Nein, das weiß ich. Aber ich möchte die Methodenreferenz/Lambda an eine andere Funktion übergeben ... – user432024
Ihre Frage kann tatsächlich ein [XY-Problem] (http://mywiki.wooledge.org/XyProblem) sein, wo Sie fragen "Wie behebe ich das? Code-Problem ", wenn die beste Lösung ist, einen ganz anderen Ansatz zu verwenden. Denken Sie daran, uns das Gesamtproblem zu nennen, das Sie lösen möchten, und nicht, wie Sie es gerade lösen wollen. –