【问题标题】:Is there a convention for modifying the naming of identifiers that would otherwise be keywords in Java?是否有修改标识符命名的约定,否则这些标识符在 Java 中可能是关键字?
【发布时间】:2015-03-31 06:45:27
【问题描述】:

例如,您可能会这样做:

public final class Library {
    public void checkOut(Book book) { /* banana banana banana */ }
    public void return_(Book book) { /* banana banana banana */ }
}

但是Java程序员应该遵循一个实际的约定吗?

【问题讨论】:

  • 肯定有命名约定!检查 GOOGLE 页面:google-styleguide.googlecode.com/svn/trunk/javaguide.html 命名约定因开发人员而异,但通常尽量不要使用会使其他开发人员混淆的名称;将某些东西命名为“return_”不是一个好主意。
  • clazz is used for class。除此之外,我猜没有,没有约定。您应该避免使用关键字作为标识符。
  • klasscls 的使用量与 clazz 相同,并且在这两种情况下都尽可能地缺乏想象力。

标签: java


【解决方案1】:

语义很重要

return() 应该是checkIn() 问题解决了!

另外,return 本身就是一个可怕的词,它并不比像 typeflag 或我每天看到的数百个其他标签中的任何一个没有独立语义并且需要大量的标签更好特定含义的上下文。

【讨论】:

    【解决方案2】:

    您应该只使用有意义的名称。这样当另一个开发人员(甚至非技术人员)阅读您的代码时,他/她会很容易理解发生了什么。

    a.b(c) 要短得多,但 member.checkOut(encyclopedia) 更容易理解

    【讨论】:

      【解决方案3】:

      没有约定(据我所知)。通常,当您需要将关键字用作标识符或其他内容时,(几乎总是)会有另一个最适合更改它的词。

      【讨论】:

        【解决方案4】:

        Jarrod 有一个很好的观点,解决这个问题。

        一个可怕的情况是,如果您使用 "isReturnable()" 或 getBookPageCount() 计算页面计数而不是属性,某些工具希望看到 bean 模式并且反应不佳。在这些情况下,我有时会看到看起来很可怕的“izReturnable()”,但事实就是如此。另一个通常可以改写为 countPages() 之类的其他内容。一般来说,bean 模式很糟糕,应该从轨道上删除并替换为注释。

        另外一个丑陋的例子是一个名为“class”的变量,它很好地描述了一个包含“class”对象的变量,很多人使用 clazz——你只是有点习惯了。

        但是 vs 关键字我想我会说约定只是使用更具描述性的方法/变量名称。

        【讨论】:

          猜你喜欢
          • 2014-02-09
          • 1970-01-01
          • 1970-01-01
          • 2012-05-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-23
          • 2011-09-08
          相关资源
          最近更新 更多