当前位置: 首页 > 面试题库 >

如何建立使用我的自定义注释注释的类的列表?

钦德佑
2023-03-14
问题内容

我想获得应用程序中带有@Custom注释的类的完整列表。此操作的最佳机制是什么?

ps。例如,JAX-RS实现如何找到所有带有注释的类@Path?我想使用相同的机制。


问题答案:

通常,这是通过称为类路径扫描的过程完成的。通常,类加载器不允许扫描类路径上的所有类。但是通常唯一使用的类加载器是UrlClassLoader我们可以从中检索目录和jar文件的列表(请参阅getURLs),然后一个个地打开它们以列出可用的类。

这种方法由Scannotation和Reflections之类的库实现。

另一种方法是使用Java Pluggable Annotation Processing
API
编写注释处理器,该处理器将在编译时收集所有带注释的类并构建索引文件以供运行时使用。

以上机制在ClassIndex库中实现。

使用类路径扫描通常比编译时html" target="_blank">索引慢两个数量级。请参阅此基准。



 类似资料:
  • 我发现了几个与此相关的(不是重复的)问题,但它们不能让我满意。 我无法理解在哪里以及为什么要使用? 我在一本书中读到了一个自定义注释的示例,但没有详细解释。 myMeth()内的输出与预期一致。 关于这个例子,我有几个问题。 1-如何在此程序中使用和?或

  • 问题内容: 注释如何与Java一起使用?以及如何创建这样的自定义注释: 基本上,我需要保留的POJO在持久化时像这样进行序列化: 这样,实际的生成/持久对象是这样的: 任何想法如何实现这一点? 问题答案: 如果创建自定义注释,则必须使用此处的 API 示例进行处理。您可以参考如何声明注释。 这是Java中的示例注释声明的样子。 并被称为。 表示您想在运行时保留注释,并且可以在运行时访问它。 表示您

  • 目前,我将辅助注射与命名参数一起使用,如下所示: 这很棒。但是我认为使用字符串作为参数的标识符有点难看。我想做的是以下内容: 所以本质上我想要自定义辅助注释。有办法做到这一点吗?

  • 问题内容: 我想创建自己的自定义注释。我的框架是独立Java应用程序。当有人注释他的pojo类时,后面的“隐藏”代码将触发方法。 例如,今天在Java EE中,我们具有注释。并且,当您使用注释类并另外实现MessageListener接口时,将触发一个背后的代码。当消息从队列/主题到达时。 如何创建批注(),可以将其添加到pojo并实现。 我希望得到的结果是(我的)“隐藏”代码的触发器,该触发器将