如何解决使用Spoon在文档注释中获取非Javadoc标签的文本
我想使用inria-spoon处理内部具有自定义非Javadoc标记的Java源文件
Doc评论。但是,当Spoon处理文档注释时,使用String
返回的CtMethod#getDocComment()
将用@unkNown
替换非Javadoc标签的文本。
我需要保留标签的原始文本,以进行进一步的过滤和处理。
@unkNown some-value
@return name of husband
并且期望的是
@abc:xyz some-value
@return name of husband
具有主要运行方法的类是Spooner
,正在处理的源是Carrie.java
。
Spooner.java
:
package tryspoon;
import spoon.Launcher;
import spoon.reflect.declaration.CtMethod;
import spoon.reflect.visitor.filter.TypeFilter;
public class Spooner
{
private static final String SAMPLE_SOURCE_PATH = "full_local_path_to_source";
public static void main(String[] args)
{
Launcher launcher = new Launcher();
launcher.addInputResource(SAMPLE_SOURCE_PATH);
launcher.buildModel();
String firstDocComment = launcher.getModel()
.getElements(new TypeFilter<>(CtMethod.class))
.get(0).getDocComment();
System.out.println("First Doc comment contents: " + firstDocComment);
}
}
Carrie.java
:
package tryspoon;
public class Carrie {
/**
* @abc:xyz some-value
* @return name of husband
*/
public String husband()
{
return "Doug";
}
}
解决方法
https://github.com/INRIA/spoon/pull/3513合并后,将很快在master中修复此问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。