使用Spoon在文档注释中获取非Javadoc标记的文本



我想使用inria spoon来处理内部具有自定义非Javadoc标记的Java源文件文档注释。但是,当Spoon处理Doc注释时,使用CtMethod#getDocComment()返回的String将用@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被合并。

相关内容

  • 没有找到相关文章

最新更新