私は何の問題は注釈を付けされていないメソッドのリストを取得することができます...Javaリフレクションは、他のメソッドのパラメータとしてメソッドに渡しますか?
Method[] m = clazz.getDeclaredMethods();
今、私は関数に[x]の方法を渡したいと思います。たとえば...
router.get("/").handler(RoutingContext handler)
私はメソッドリファレンスとしてハンドラに渡したいと思います。
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();
}
が、私はそう、私は反射的にそれを見つけて、「ルータ」に追加することができ、機能はmyHandlerに注釈を付けたいと思います。java 8で
我々だけでrouter.get("/").handler(this::myMethod)
更新例を行うことができます。だから、反射して、私は...
を何ら問題は注釈を付けていないし、各1のために私のルータに追加されているメソッドのリストを取得することができますので、
@GET
public void myHandler(final RoutingContext rcs) {
rcs.doSomething();
}
@POST
public void anotherHandler(final RoutingContext rcs) {
rcs.doSomething();
}
...私はいくつかの「ウェブ」anotationsを持っていると言います 私は、リフレクションを使用してこれらのメソッドを一覧表示することができます。クールな問題はありません。しかし、私は上記の例に示すように、router.handler()へのメソッド参照としてそれらを渡したいと思います...
もしあなたがそれをWebフレームワークのために推測していないのであれば、私はそれを私たちは別のものが必要なように野生ではない。それは学習のための笑です。
更新
ルータはタイプのものであり:https://github.com/vert-x3/vertx-web/blob/master/vertx-web/src/main/java/io/vertx/ext/web/Router.javaと
そして、投手はvertx.io
...反射呼び出しにこだわるあなたが反射で名前で特定のメソッドを取得する方法をお探しですか? – mhasan
いいえ、それは私が知っている。しかし、私はメソッド参照/ラムダを別の関数に渡したいと思っています... – user432024
あなたの質問は実際には[XY問題](http://mywiki.wooledge.org/XyProblem)です。最高の解決策は完全に別のアプローチを使用することです。あなたが現在解決しようとしている方法ではなく、解決しようとしている全体的な問題を教えてください。 –