而不是像这样使用匿名类
register(new EventListener() {
@Override
public void apply(Event e) {
// do your work
}
});
使用java 8我可以使用lambda表达式:
register(e -> (// do your work));
但是如果我的界面中的方法被注释了呢?
interface EventListener {
@Annotation
void apply;
}
是否可以注释lambda表达式? (具体来说,我想使用Guava的EventBus.register()方法和lambda表达式)
答案 0 :(得分:2)
见:
Annotating the functional interface of a Lambda Expression
基本上,您无法在lambda表达式中直接注释,但您可以使用扩展接口或类并通过调用Class#getAnnotatedInterfaces()
来访问注释。我相信应该回答你的问题。
希望这有帮助,
圣地亚哥