gpt4 book ai didi

java - 如何从调用者处检索以编程方式调用的 Javadoc doclet 的输出?

转载 作者:行者123 更新时间:2023-12-01 05:24:16 25 4
gpt4 key购买 nike

我正在编写一个工具,用于从预先存在的 Java 源文件中抓取 Javadoc,并通过自定义 doclet 对其进行预处理(处理的具体细节不相关)。我已经编写了 doclet,并且可以通过编程 API 从我的代码中调用 doclet,如 Java documentation 中所示。 。

从某种意义上说,该机制是“只写”的,即运行 doclet 的结果(如果有)无法通过第一类 Java 对象传输回execute() 方法的调用者。相反,我必须采取一些措施,例如将中间输出从 doclet 内写入文件,然后从调用者处读回。

所以我的问题:有没有办法直接在调用者处检索由我的自定义 doclet 生成的字符串?例如:

public void foo() {
// Invoke my custom doclet via Javadoc programmatically
com.sun.tools.javadoc.Main.execute(new String[] {"-d", "docs", "- sourcepath", "/home/usr/src", "p1", "p2"});

// Access the String output of my doclet here
String processedJavadoc = getTheOutputOfMyDoclet();
}

提前致谢!

最佳答案

好的,所以我能想到的最优雅的方法是让 doclet 类使用一个静态成员变量,该变量设置为 Javadoc 线束传入的 RootDoc 实例。它调用 doclet 的 start() 方法,然后允许调用者通过 getter 访问此静态成员。这带来了使用静态成员的明显线程安全问题,但它对于我的目的来说工作正常。

关于java - 如何从调用者处检索以编程方式调用的 Javadoc doclet 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9902612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com