假设我们有以下没有Lambdas的代码:
doSomething.consumer("someString", new Handler<Message<JsonObject>>() {
@Override
public void handle(Message<JsonObject> event) {
//do some code
}
});
如何使用Lambdas转换此代码并将Lambda的参数用作
Handler<Message<JsonObject>>
这就是消费者方法的样子:
<T> MessageConsumer<T> consumer(String address, Handler<Message<T>> handler);
答案 0 :(得分:2)
您可以这样做来定义T
是什么
doSomething.<JsonObject>consumer("someString", event -> { /* do some code */ });
或定义event
是什么类型
doSomething.consumer("someString", (Message<JsonObject> event) -> { /* do some code */ });
或定义您希望处理程序的类型。
doSomething.consumer("someString", (Handler<Message<JsonObject>>)
(event -> { /* do some code */ }));
答案 1 :(得分:0)
MessageConsumer<JsonObject> consumer =
doSomething.consumer("someString", event -> {
// some code
});
答案 2 :(得分:0)
你想用lambda&#39;重新编写处理程序吗?可能类似于以下
<T> MessageConsumer<T> consumer(String address, Function<Message<T>, Void> function);
而不是
doSomething.consumer("someString", new Handler<Message<JsonObject>>() {
@Override
public void handle(Message<JsonObject> event) {
//do some code
}
});
你可以写
doSomething.consumer("someString", message -> null);