Java pubsub的注释处理

Java pubsub的注释处理,java,annotations,processor,Java,Annotations,Processor,我有第三方库,它使用kafka来抽象发布子机制。我有一些类似下面的内容要订阅 DDS.createListener((topic) -> "do sth with this topic"); 我想更进一步,并希望创建一个注释,如下所示 @Subscribe("topicName") public void listen(Topic topic) { // do sth with this topic } 我在处理批注时遇到问题 首先,我需

我有第三方库,它使用kafka来抽象发布子机制。我有一些类似下面的内容要订阅

DDS.createListener((topic) -> "do sth with this topic");
我想更进一步,并希望创建一个注释,如下所示

@Subscribe("topicName")
public void listen(Topic topic) {
    // do sth with this topic
}
我在处理批注时遇到问题

首先,我需要找到用Subscribe注释的方法,然后需要监听幕后的主题,然后在收到主题时,将其指向示例中的注释方法“listen”。 我应该在哪里做听力部分

DDS.createListener((topic) -> listen() /* dunno how to access listen */)

另外,为了包含listen方法,我需要一个类实例,但我不确定如何处理它。执行Class.newInstance()是没有意义的。是否需要其他类型的配置?

您需要在处理主题注册的包装器类中创建register(Object obj)方法。这需要在拥有subscribe方法的类的构造函数中调用

所以,每当有人调用register(this)方法时,您将获得对象引用,您需要找到@Subscribe注释的方法并创建监听器,该监听器将使用反射调用给定的方法


还有其他方法,但这似乎是最简单的

那么我不需要注释处理器了?直接反射?如果您不使用注释,那么您如何知道需要使用哪个方法作为侦听器。您仍然需要注释才能找到用作侦听器的方法。请查看google事件总线的示例,了解我建议的设计类型。我说注释处理器不是注释好的谢谢