16

我对(命名约定_)在变量名和方法名中使用下划线作为起始字母感到困惑。例如_sampleVariable_getUserContext()。有人可以澄清何时使用它吗?

4

5 回答 5

13

请参阅 Java命名约定

除变量外,所有实例、类和类常量都是大小写混合,首字母小写。内部单词以大写字母开头。变量名称不应以下划线 _ 或美元符号 $ 字符开头,即使两者都允许。

声明为类常量的变量名和 ANSI 常量名应全部大写,单词之间用下划线 ("_") 分隔。(为了便于调试,应避免使用 ANSI 常量。)

于 2013-05-28T06:27:13.677 回答
10

有时人们使用下划线表示他们的变量或方法是私有的。我不喜欢这种做法。我建议你也使用 camelCase。

于 2013-05-28T06:29:24.567 回答
7

引用 Robert C Martin 的 Clean code 一书,

有时警告其他程序员某些后果很有用。

例子

// Don't run unless you
// have some time to kill.
public void _testWithReallyBigFile() {
writeLinesToFile(10000000);
response.setBody(testFile);
response.readyToSend(this);
String responseString = output.toString(); assertSubString("Content-Length: 1000000000", responseString); assertTrue(bytesSent > 1000000000);
}

当然,现在我们会通过使用带有适当解释字符串的@Ignore 属性来关闭测试用例。@Ignore("运行时间太长"). 但是在 JUnit 4 之前的日子里,在方法名称前加下划线是一种常见的约定。

于 2018-02-27T07:55:17.603 回答
3

通常 _ 用于变量中以将它们表示为类级别的私有变量。

于 2013-05-28T06:29:48.307 回答
3

通常不应使用,除非在通常是最终的所有大写常量(allStars 但 ALL_STARS)中作为分隔符。

正是因为通常没有预期,下划线在生成的代码中很丰富。它也可能在一些旧代码中找到,这不是继续使用它的原因。

于 2013-05-28T06:27:14.933 回答