如何将一个方法的Javadoc复制到另一个方法的Javadoc中?

37

我知道有@inheritDoc,但它只适用于重写其他方法的情况。

我有几个类有许多委托方法(它们不会覆盖其他方法)。

它们的Javadoc能被“继承”(更确切地说是复制)吗?

/** here I need the copy of wrappedMethod's Javadoc */
public void delegateMethod(Object param){
  innerSomething.wrappedMethod(param);
}

紧密相关但具体针对重载方法:https://dev59.com/dXE85IYBdhLWcg3w432o#28114175 - Ciro Santilli OurBigBook.com
2个回答

19

这里适合使用@link或@see标签。如果您正在包装方法,那么它必须提供与重载或其他方式不适用的独特行为。


1
是的,但是当包装方法是受保护的时候,@link@see不幸地没有用处 :( - java.is.for.desktop
@seanizer 哦,我不知道这是可能的,谢谢! - java.is.for.desktop
3
对于可见度低于生成内容的方法,这种方法行不通。对于库编写者来说,例如使用私有成员来生成JavaDoc并不是一个选项。我希望知道一种能够在公共API中重用私有文档的方法。 - Benny Bottema
3
@BennyBottema,你表达了我的想法,谢谢!我也在记录一个解析选项字符串的私有方法,并且有一个相当详细的Javadoc。这是描述所属的位置,但是几个构造函数需要传递选项字符串,并且也需要相同的文本。如果我现在将跨越一个完整屏幕的私有方法的文本复制到一个或每个构造函数中,这只会成为冗余的混乱和维护噩梦。我不想增加方法的可见性,因为它只会被构造函数调用。 - kriegaex

11
有时候,把文档剪切粘贴起来其实是一件好事情。特别是在没有继承关系的情况下,“链接”文档会有风险,因为其中一个方法可能会以某种方式改变其行为,使链接的文档不再有效。
然而,在委托的情况下,我已经遇到过同样的问题好几次。通常情况下,您会在一个主类上公开一个方法,并将其委托给一个包私有的委托类,该类具有与主方法完全相同的行为。这里的解决方案很简单-对主类进行文档编写,并在委托类上放置@link或@see。每个人都可以看到主类的文档。您可能还需要在委托类上编写更详细的文档,例如实现细节。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接