【问题标题】:Getting text of non-Javadoc tag inside doc comment with Spoon使用 Spoon 在文档注释中获取非 Javadoc 标记的文本
【发布时间】:2020-09-09 11:08:24
【问题描述】:

我想使用 inria-spoon 来处理包含自定义非 Javadoc 标记的 Java 源文件 Doc cmets。但是,当 Spoon 处理 Doc cmets 时,使用 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";
  }
}

【问题讨论】:

    标签: java javadoc inria-spoon


    【解决方案1】:

    https://github.com/INRIA/spoon/pull/3513 合并时,这将很快在 master 中修复。

    【讨论】:

      猜你喜欢
      • 2020-02-06
      • 2014-11-30
      • 2011-08-02
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2010-10-24
      相关资源
      最近更新 更多