【问题标题】:Naming convention for constant objects JavaJava 常量对象的命名约定
【发布时间】:2014-04-23 10:55:52
【问题描述】:

对于常量基元类型和数据结构,如对象(字符串、基元的对象版本),约定似乎是用下划线分隔单词的全大写字母。这种约定是否适用于线程池之类的东西?

例子:

public static final int MAX_SPEED = 500;
public static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool();

【问题讨论】:

  • 是的。任何常量都应该用大写字母命名。
  • 这个例外是serialVersionUID

标签: java naming-conventions


【解决方案1】:

我不认为有任何这样的约定或规则。但是,是的,作为一种良好做法,人们会遵循您正在做的事情,即名称使用全大写并使用下划线分隔单词。

这种约定是否适用于线程池等事物?

是的,你可以关注这个。

来自 JLS:

6.8.5 常量名称

接口类型中的常量名应该是,final 类类型的变量通常可以是一个或一个序列 更多单词、首字母缩写词或缩写词,全部大写,带有组件 下划线“_”字符分隔。常量名应该是 描述性的,而不是不必要的缩写。按照惯例,他们可能 成为任何适当的词性。常量名称示例 包括类的MIN_VALUE、MAX_VALUE、MIN_RADIX和MAX_RADIX 字符。

我会说这完全是一个偏好问题。

【讨论】:

    【解决方案2】:

    在 Java 中,constant 变量是使用“static final”修饰符声明的。并且此类变量必须仅包含 UpperCase 字符,并且必须使用 '_' 分隔多个单词。

    1   static final char END_OF_FILE = 'e';
    2   myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    

    创建约定只是为了提高代码的可读性。因此,您可以选择使用它们或离开它们。但如果你确实使用它们,你的代码会看起来很专业。 Java 编译器确实希望您使用这些约定。但是在某些语言中,您命名变量的方式会向编译器表明它是什么类型的变量。例如,在 Ruby 中,要声明一个常量变量,您必须只使用大写字母作为变量的整个名称。 Ruby 编译器仅以这种方式识别常量变量!

    更多详情

    Java naming convention for static final variables

    【讨论】:

    • @user3414693 :) 我知道
    猜你喜欢
    • 1970-01-01
    • 2012-09-13
    • 2015-12-29
    • 2010-09-19
    • 1970-01-01
    • 2010-12-16
    • 2014-08-06
    • 2012-03-17
    • 1970-01-01
    相关资源
    最近更新 更多