在Java中选择方法/参数名称

时间:2011-07-09 19:34:11

标签: java naming-conventions

我应该如何选择在Java(或任何其他语言)中使用哪些方法名称和参数名称/类型?为什么有这么多方法可供选择?

如果有很多人在一个项目上工作,那么在代码的不同部分看到不同的命名方式会很烦人,特别是如果人们对它们的使用不一致的话。为什么语言的发明者没有简单地陈述一个标准 - “这是方法和参数应该命名的精确方式。期间。”?

然后编程会更容易。每次我编写一个方法时,我必须在众多不同的参数/方法名称之间做出选择,然后尝试通过代码来选择如何选择。


示例1:

public void handleFile(String file)
public void handleFile(String fileName)
public void handleFile(File file)

示例2:

public void exec(String command)
public void exec(String cmd)
public void exec(String commandString)
public void exec(String cmdString)
public void execute(String command)
public void execute(Command command)
public void execute(Command cmdObj)

等。等

6 个答案:

答案 0 :(得分:2)

如果您正在与一群人合作,那么建立编码标准可能是值得的。谷歌这个短语,你会找到例子。

答案 1 :(得分:2)

实际上,Java语言存在命名约定:请参阅http://www.oracle.com/technetwork/java/codeconventions-135099.html

像变量一样的参数应该用camelCase编写,除了众所周知的首字母缩略词(URL,HTTP等)之外,通常不应该缩写,最重要的是,应该描述参数的作用而不是它的类型。它的类型是knwon:它是在论证之前编写的。

所以更喜欢

void copy(SomeClass source, SomeClass destination)

void copy(SomeClass someClass1, SomeClass someClass2)

关于您的示例,以下是我接受的内容:

public void handleFile(String fileName)
public void handleFile(File file)

两者都是可以接受的,因为第一个处理名称而第二个处理文件。

public void execute(String command)
public void execute(Command command)

答案 2 :(得分:1)

参数名称是开发人员使用它的提示,应该传递什么。它们应该尽可能清晰,而不是不必要的冗长。

我建议你做你认为更清楚的事情。

答案 3 :(得分:1)

事情是 - 没关系。方法名称更重要,参数名称应该简单地描述参数。试图强制执行有关名称的规则将很难 - 你无法为此制定足够的规则。

另一方面,参数类型很重要 - 您应该选择最具体的参数类型。如果只需要一个文件名,那么传递一个String。如果您需要知道是否可以阅读文件,请传递File

答案 4 :(得分:0)

传统上,人们被限制在屏幕上可以容纳的字符数量,因此首选短变量名称。

现在有大屏幕,自动换行和自动完成的日子,你可以根据需要命名。

这一切都取决于你的团队如何决定是最好的方式,你应该执行一个你们都同意的编码标准。

我个人尝试命名变量以准确描述他们持有的内容因此它保持TableViewController我将其称为tableViewController,这样我在一天中再次查看代码就很清楚了,周...我使用TableViewController而不必仔细检查的时间。如果我调用变量tvc或其他缩写,你可以想到它可能不太明确我的代码的意图是什么。

答案 5 :(得分:0)

通常,第一个选择是camelcase中参数Class的名称:

void someMethod(SomeClass someClass)

除了String / primitive或boxed之外,你赋予它意义并通常删除类型:

void someMethod(String filename) // note filename is so common, it's rarely "fileName"

但有时它只是“一个字符串” - 这里有一些常见的选择

void trim(String aString)
void trim(String string)
void trim(String s)

无论风格如何,您的团队都应该同意命名约定并使用它。