当我需要在讨论中引用Java方法时,我曾经这样写过:
然而,目前尚不清楚是否:
在引用Java方法时是否有编写Java方法的标准?
答案 0 :(得分:2)
最完整的版本是使用修饰符和返回类型编写方法的整个签名,并最终抛出异常,如标准的javadoc:
public boolean equals(Object obj)
显然,它还取决于您使用引用的上下文。尝试尽可能完整,不再需要。
答案 1 :(得分:1)
假设这个问题指的是在元上下文中讨论Java代码时如何引用的难度。 E.g。
您应该在此上下文中使用
StringBuilder.append()
方法而不是++
运算符,因为......
现在,我们可以谈论的方法可以通过以下方式进行分类:
在上下文中,上述示例足以明确,因为名为'append'的方法之间没有很大的重叠。但是,如果它被提升到一些实际的Java代码中,它就不可能编译,原因如下:
另外,因为它像静态方法调用一样编写,但是引用了实例方法调用,读者可能会感到困惑。
在很多情况下,通常可以找到一个解决方案,通过提供实际的代码示例来消除所有歧义。
尝试这种方法:
StringBuilder sb = new StringBuilder(); sb.append(textToAppend);
这个问题是不必要的冗长,而且变得有点笨拙和不方便。此外,它失去了以“元”方式讨论方法的能力,并且没有明显的地方可以提供链接供参考。
如果您所引用的方法的类是已知的,则删除所有歧义的一种方法是提供Java API Specification中给出的完整方法签名,包括访问修饰符。 E.g。
尝试使用
的过程public StringBuilder append(String str)
实例的StringBuilder
方法。这避免了重复......
这具有一致性和显示所有相关信息的优点,但输入的确更加努力。
如果上下文意味着没有歧义,则省略以下任何内容是合理的:
<强> public
强> StringBuilder append(String str)
如果访问修饰符与讨论无关,则可以省略public
。
public
的 StringBuilder
强> append(String str)
如果返回类型明显,或明确,或与讨论无关,则可以省略它。
public StringBuilder append(String
的 str
强> )
如果参数名称与讨论无关(通常是这种情况),则可省略参数名称。
public StringBuilder append
的 (String str)
强>
如果意图中没有歧义或者它们不相关,您可以完全省略参数。
尝试使用
的过程append
实例的StringBuilder
方法。这避免了重复......
这可能是最明确的方法,同时避免不必要的信息。也就是说,我的第一个例子中的符号非常方便,通常不会导致混淆。
最终归结为品味问题,但避免歧义应该是最重要的考虑因素,为此,采用相对符合Java API规范本身的方法似乎是一个好主意。
答案 2 :(得分:-2)
这是一本很好的指南:Defining Methods
没有返回类型的方法将声明为void,而具有返回类型的方法将返回类型作为方法声明的一部分。
可以从另一个类调用静态方法(在类中),而无需创建类的实例。