私はVERTXに基づいてプロジェクトの次の行に動作:MyClass.ADDRESSは、MyClassクラスで文字列型の静的フィールドであるのに対しvertx 2:vertx.eventBus()。send(ClassName.ADDRESS、....)なぜ新しいクラスを初期化するのですか?
vertx.eventBus().send(MyClass.ADDRESS, requestBody, new Handler<Message<Object>>() {
....
}
public class MyClass implements Handler<Message<JsonObject>> {
public static final String ADDRESS = "coupons.api.manager";
...
@Override
public void handle(Message<JsonObject> msg) {
...
}
}
を、私はラインvertx.eventBus(ことが判明しました... )MyClassのオブジェクトを作成し、handle()関数を実行します。
私の質問はなぜですか? MyClass.ADDRESSは文字列で、静的なものです。 vertexは、この文字列が属性であるクラスからオブジェクトを作成する必要があることを「知っていますか?
私は、send()関数のドキュメントを見て:http://vertx.io/docs/apidocs/io/vertx/core/eventbus/EventBus.html#send-java.lang.String-java.lang.Object-io.vertx.core.eventbus.DeliveryOptions-io.vertx.core.Handler-
、それは関数の最初の引数は「に送信するアドレス」であると述べています。 OK。しかし、誰が、このアドレスはこのクラスのインスタンス化を意味すると言ったのですか?
'vertx.eventBus(...)は静的フィールドのために' MyClass'のオブジェクトを作成していますか? 'MyClass.ADDRESS'を' vertex.eventBus(...) 'の' 'coupons.api.manager" 'で置き換えて、この場合は' MyClass'のオブジェクトを取得するかどうか確認してください。 – berserkk