标签如何知道它所在的课程?

时间:2014-04-19 00:53:40

标签: java javadoc taglet

据我所知,taglet api在其包中只有一个类:Taglet,如果您将Taglet.html更改为package-summary.html,则其中没有其他任何内容(而且这是有点可怕的消息:

  

从JDK 1.5版开始,由com.sun.tools.doclets.internal.toolkit.util.

取代

我假设这不会影响Taglet接口本身。)

接口中没有任何内容可以了解taglet所在的类 - 它的上下文无关。

无论如何都要获取从中“调用”taglet的类的名称?具有{@.myTaglet}存在的JavaDoc块的类?

作为一个黑客,我想在使用任何自定义标记之前强迫用户在顶部设置{@.thisClass my.package.AClass}

更好的想法会很棒。

(这是Sun的taglet overview。)


(另外,请考虑查看我之前的问题,这是另一个标记问题: How to make inline taglets (which require com.sun) more cross-platform? Is there a non-Oracle/more-cross-platform javadoc parser?

1 个答案:

答案 0 :(得分:0)

当我研究这个问题时,我想出来了。这是演示UnderlineTaglet中的一个函数:

public String toString(Tag tag) {
    return "<u>" + tag.text() + "[" + tag + ", [" + 
       tag.holder() + "]]</u>";
}

如果此标记位于com.github.xbn.insertexample.BasicOutputProcessors

{@underline xxx}

导致

<u>xxxy[@underline:xxxy, [com.github.xbn.insertexample.BasicOutputProcessors]]</u>

所以tag.holder().toString()就是答案。

API: