【发布时间】:2014-05-30 04:35:40
【问题描述】:
我想在服务类运行之前显示一些文本。该文本可以是 HTML,由类的 javadoc 生成。是否可以从类本身访问/生成它?
【问题讨论】:
-
如果只是想显示的文字,可以使用静态代码
标签: java reflection annotations javadoc java-compiler-api
我想在服务类运行之前显示一些文本。该文本可以是 HTML,由类的 javadoc 生成。是否可以从类本身访问/生成它?
【问题讨论】:
标签: java reflection annotations javadoc java-compiler-api
现在有了 Java 8,您就有了一个完整的界面来使用 cmets 和文档。检查这个包com.sun.source.doctree
【讨论】:
您需要访问源代码文件才能读取 cmets。如果您没有访问权限(如果您想在运行时读取 cmets,这很可能是这种情况),您将不得不使用其他解决方案,例如将文本提供为字符串或资源文件。
可以使用 Java Compiler API 获取 cmets。请参阅:How to access comments from the java compiler tree api generated ast?。这里的问题是你仍然需要知道源代码文件在系统上的位置,如果它们根本就在那里。
另一个解决方案是使用注释处理器。它的优点是它为您提供了源代码的抽象表示,而无需手动读取文件。您需要确定要从中读取 cmets 的类,然后使用 Element.getDocComment。
【讨论】: