在Javadocs中,我应该如何在<code>标签中编写复数形式的单个对象?

Piz*_*rog 40 java grammar javadoc

我有一个名为的班级Identity.在我的javadoc评论中,我将其称为复数形式.我可以想到两个解决方案:更改<code>Identities</code><code>Identity</code>s 的引用.这些都不正确,我想知道是否有更好的解决方案.

这是一个清晰的例子:

/**
  * Returns an <code>IdentityBank</code> of <code>Identity</code>s with the given sex.
  */
Run Code Online (Sandbox Code Playgroud)

要么

/**
  * Returns an <code>IdentityBank</code> of <code>Identities</code> with the given sex.
  */
Run Code Online (Sandbox Code Playgroud)

Col*_*ica 42

听起来你想在这里做两件事:使用良好的语法,但也要使用你的类的文字,逐字名称,以便你的javadoc用户可以查找它们.

使用复数时可以做的一件事是使用短语"X实例".所以使用你的例子,你可以把:

/**
 * Returns an <code>IdentityBank</code> of <code>Identity</code> instances with the given sex.
 */
Run Code Online (Sandbox Code Playgroud)

如果需要指定多个值类型(本身没有实例),则可以使用"X值".例如,您可以说"返回int值列表".其他可接受的名称可能是"记录","注释","条目","通知",或者如@ Marco13所述,"对象".

您应该避免在框架,系统或应用程序中使用与现有术语或类名冲突的术语,除非您使用的术语已经使用过.例如,除非您在文件系统中引用文字文件,否则不要说"返回案例文件列表".使用它来引用文件的业务规则概念会增加混淆的可能性.因此而考虑避免的其他术语可能是"数据库","表"(除非引用数据库中的实际表或它们的抽象或表示),"页面","表单","表单","驱动程序" ,"端口","窗口","列表","堆","堆栈","应用程序","例外"(除非它们是Throwable),"引脚"和"总线".

同样,如果任何合理的名词符合代码的业务规则并且可以理解,那么任何合理的名词都是有用的.您可以执行以下任何操作:

  • 返回MapNode条目的象限
  • 返回BalancedTree的Employee档案

  • 同意:"实例","值","对象" - 有几个选项,虽然它有时听起来有点不自然,但它是最不模糊的形式 - 特别是当类名用作`{@link时. ..}` (4认同)
  • +1:像这样的尴尬案例是许多技术写作风格指南倾向于将大多数代码标识符,产品/技术名称等视为形容词. (2认同)

Boh*_*ian 28

使用"...(s)"样式复数标签,与{@link}班级:

/**
  * Returns an {@link IdentityBank} of {@link Identity Identity(s)} with the given sex.
  */
Run Code Online (Sandbox Code Playgroud)

这将呈现为:

返回IdentityBankIdentity(s)与给定的性.

阅读起来既简单又自然,而且显而易见,清晰明白.

{@link}无论如何你应该使用课程.它负责<code>样式格式化,提供实际类的HTML链接.


您可以在链接编码"(s)" ,即{@link Identity}(s)意味着完全传统的用法{@link},但是中间字体会有字体更改:

返回IdentityBankIdentity与给定的性别(S).

恕我直言会降低清晰度并可能导致混淆.

  • 我不喜欢它.这是误导性的,因为这样渲染它看起来在代码中有一个名为"Identities"的标识符(在最坏的情况下甚至可能是真的).你必须将鼠标悬停在链接上并阅读URL以查看这里实际说明的内容,这是非常糟糕的可用性.Imo Robert Columbia的答案是在正确性和良好的语法/排版之间做出更好的妥协. (2认同)
  • @besc我认为罗伯特的语法很笨拙,但你促使我改进了我的答案 - 看看你是否喜欢它.压力让钻石:) (2认同)

Mar*_*o13 7

当我看到问题标题时,我想知道:在5分钟之后这怎么可能没有被关闭为"主要基于意见"?但我认为这是一个重要的问题,我已经在这个痛苦太多,最终来的结论是,有可能是不同的(目标,即不是基于观点的!)论据,不同的选择-所以这里有我的两分钱:

使用类名CustomerIdentity示例,有不同的选项,将呈现如下:

  1. 所有Customer■找Identity小号

    使用不同字体的"s"会降低可读性.错误的复数"身份"是值得怀疑的.

  2. 所有CustomersIdentities

    乍一看,这看起来很不错.但它有一个严重的缺点:通常的做法是s为包含工厂方法的类附加类名!例如,按照Customer惯例,将调用包含对象的工厂方法的类Customers.像这样的JavaDoc ......:

    您可以Customers使用Customers类中的方法创建

    显然是令人困惑:该链接不会导致你可能期望从您点击名称的文档.

  3. 我通常应用的解决方案(我在上面讨论了方法2的缺点时使用过它):

    所有Customer对象都有Identity对象.

    是的,它可能听起来有点不自然,但我认为它是最好的权衡:名称Identity是可读的,很明显它是一个类名,并且这个类的名称是明确的Identity.


旁注:我通常将名称插入为{@link ...}.由于Eclipse中的自动完成,这很方便,因为它可以显着简化浏览生成的JavaDocs.我建议{@link ...}至少在文档块中出现类名时第一次使用.<code>...</code>可以使用进一步的外观.