使用 Spoon 在文档注释中获取非 Javadoc 标记的文本
Getting text of non-Javadoc tag inside doc comment with Spoon
我想使用 inria-spoon 来处理 Java 内部具有自定义非 Javadoc 标签的源文件
文档评论。但是,当 Spoon 处理 Doc 评论时,使用 CtMethod#getDocComment()
返回的 String
将用 @unknown
替换非 Javadoc 标签的文本。
我需要保留标签的原始文本以供进一步过滤和处理。
下面的两个类显示了一个输出为
的例子
@unknown some-value
@return name of husband
想要的是
@abc:xyz some-value
@return name of husband
Class 运行 的主要方法是 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 中修复。
我想使用 inria-spoon 来处理 Java 内部具有自定义非 Javadoc 标签的源文件
文档评论。但是,当 Spoon 处理 Doc 评论时,使用 CtMethod#getDocComment()
返回的 String
将用 @unknown
替换非 Javadoc 标签的文本。
我需要保留标签的原始文本以供进一步过滤和处理。
下面的两个类显示了一个输出为
的例子@unknown some-value
@return name of husband
想要的是
@abc:xyz some-value
@return name of husband
Class 运行 的主要方法是 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 中修复。