我在以下一行基于Vertx的项目上工作:
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) {
...
}
}
MyClass.ADDRESS是MyClass类中字符串类型的静态字段,我发现vertx.eventBus(...)行创建了一个MyClass对象,然后运行handle()函数。
我的问题是为什么? MyClass.ADDRESS是一个字符串,是一个静态字符串。 vertx&#34;如何知道&#34;它必须从类创建一个对象,该字符串是一个属性?
并且它表示函数中的第一个参数是&#34;将其发送到&#34;的地址。好。但是,谁说地址意味着实例化这个类?
答案 0 :(得分:0)
我进行了一项小型研究,是的。窗帘后面的Vertx连接所有实现Handler&gt;的类。到属性ClassName.ADDRESS中的字符串值。
当声明:
vertx.eventBus().send(MyClass.ADDRESS, requestBody, new Handler<Message<Object>>() {
....
}
调用,创建一个新线程并在MyClass类中运行handle方法。