【问题标题】:What is the correct way to refer to Java members in text?在文本中引用 Java 成员的正确方法是什么?
【发布时间】:2011-03-10 19:57:02
【问题描述】:

在回答问题时,我发现自己经常提到方法名称和在线文档。我对如何在文本中引用方法名称感到困惑。

例如我经常输入:

应该使用String.equals() 比较两个字符串是否相等。

但是,这有点误导:

  1. 它使equals() 看起来是一个静态成员。
  2. 它使equals() 看起来不接受任何参数。

为了完整起见,我想知道:

同时引用静态成员和实例成员的正确方法是什么?

我见过这样的事情:

  • String.equals()
  • 字符串#equals()
  • myString.equals()

有没有办法以与参数无关的方式引用方法?

例如,在 C 中,foo(void) 明确是一个零参数函数,而 foo() 可以稍后重新定义以具有不同的参数集。 (?)

【问题讨论】:

    标签: java writing


    【解决方案1】:

    如果你想真正准确,你可以使用

    java.lang.String#equals(java.lang.Object)
    

    或更短的形式

    String#equals(Object)
    

    这类似于 javadoc 中使用的符号,有趣的是,它也类似于以以下结尾的文档链接:

    String.html#equals(java.lang.Object)
    

    编辑:这是一个指向javadoc documentation 的链接,描述了如何使用引用。

    【讨论】:

    • 是否还有与参数无关的形式?
    • 如果该名称只有一种方法,您当然可以省略参数类型。毕竟,这是一个命名约定,而不是硬性规定。
    【解决方案2】:

    我发现 String 的 equals 方法的文档链接消除了歧义。

    【讨论】:

    • 嗯,我认为我们应该能够准确地引用成员而无需文档链接
    • @Matthew:你为什么要这么做?你在网上。超链接是引用另一个资源的公认方式。链接到它一次,任何后续提及它都应该清楚。
    • 好吧,我真的不想一直超链接到 String#equals(Object)。我只想提一下。假装它不是答案的重点,而只是一种辅助方法。
    【解决方案3】:

    使用 myString.equals() 是没有意义的,除非你非常清楚地说明 myString 是 String 的一个实例。 javadoc 使用 String#equals() ,因此大多数开发人员应该可以阅读和理解。这将是我的选择。

    【讨论】:

    • 我也有兴趣(消除) String#equals() 它是零参数方法的暗示。
    • 您可以写“String#equals 方法”——省略括号并添加单词“方法”——表示对某些方法的非确定性引用(可能是几个方法中的一个),命名为equalsString 类中。
    【解决方案4】:

    String.equals.

    如果你想给出参数类型String.equals(Object)

    添加括号 (equals()) 是 C 的事情。特别是一个 ANSI C 的东西,其中一个无参数函数将被写为tostring(void)(我实际上太年轻了(!)不记得 K&R/PCC C)。 C++ 解决了这个问题 - 所以() 真的很老派。

    【讨论】:

    • 再一次,这似乎暗示 equals 是一个静态成员,不是吗?
    • . 用于 Java 中名称的限定。这是一个“稍微合格的名称”。事实上,它在堆栈跟踪中显示为一个点。
    【解决方案5】:

    我通常引用类和方法名,希望读者可以使用它来查找文档。或许这有点傲慢。我不知道。

    如果我想说明要使用的方法的签名,我通常会提供示例代码。这主要是因为我发现它比手写描述更容易。

    【讨论】:

      【解决方案6】:

      myString.equals() 是完美的。它暗示类型并清楚地表明我们正在谈论一个实例。

      你甚至可以添加:

      myString.equals(aString)

      【讨论】:

      • 我觉得这是给初学者最好的例子。
      【解决方案7】:

      当引用一个方法时,我使用 "String.equals()"。这是为人类读者准备的,他们可能会从上下文中知道你在说什么。如果它可能变得混乱,只需说 "method String.equals()"

      One should use String.equals() for comparing two strings for equality.
      

      说真的,谁会被这句话弄糊涂?所以不用担心。它只是英语,没有编译器对你大喊大叫。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-06
        • 2014-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 2011-10-12
        相关资源
        最近更新 更多