当前位置:  开发笔记 > 编程语言 > 正文

在Java变量和方法名称中使用下划线

如何解决《在Java变量和方法名称中使用下划线》经验,为你挑选了8个好方法。

即使在今天,我经常在Java变量和方法中看到下划线,例如成员变量(如"m_count"或"_count").据我记忆,在这些情况下使用下划线被Sun称为坏风格.

他们应该使用的唯一地方是常量(比如"public final static int IS_OKAY = 1;"),因为常量应该都是大写而不是驼峰.这里,下划线应该使代码更具可读性.

你认为在Java中使用下划线是不好的风格吗?如果是这样(或不是),为什么?



1> Tanktalus..:

如果你现在没有使用它的代码,我建议你继续这样做.如果您的代码库使用它,请继续.

编码风格最重要的是一致性.如果您没有任何要求,那么语言供应商的建议可能是一个很好的起点.


我们确实使用编码约定而不使用下划线.无论如何,看看框架和旧代码,我经常看到下划线.一致性规则超过惯例的问题显然是为了保持一致性,而不是我在提出问题时所考虑的问题.

2> Anders Sandv..:
sunDoesNotRecommendUnderscoresBecauseJavaVariableAndFunctionNamesTendToBeLongEnoughAsItIs();

as_others_have_said_consistency_is_the_important_thing_here_so_chose_whatever_you_think_is_more_readable();


如果一个"冲突"的命名约定已经被使用,我认为这取决于我们谈论的代码量.我不建议重写几千行代码,只是为了从old_convention到newConvention,因为旧约定是一致使用的.

3> davetron5000..:

规则:

    执行您正在编辑的代码

    如果#1不适用,请使用camelCase,不要使用下划线



4> JaredPar..:

我不认为使用_或m_来表示成员变量在Java或任何其他语言中是不好的.我认为它提高了代码的可读性,因为它允许您查看片段并快速识别本地的所有成员变量.

您也可以通过强制用户使用"this"来预先添加实例变量来实现这一点,但我发现这是非常严厉的.在许多方面,它违反了DRY,因为它是一个实例变量,为什么要对它进行两次限定.

我个人的风格是使用m_而不是_.原因是还存在全局变量和静态变量.m _/_的优点是区分变量范围.因此,您不能将_重用于全局或静态,而是分别选择g_和s_.


那么你是否标记我对问题的一部分进行评论?似乎有点极端

5> Christophe H..:

"糟糕的风格"是非常主观的.如果某些约定适用于您和您的团队,我认为这将符合一个糟糕/好的风格.

回答你的问题:我使用前导下划线来标​​记私有变量.我发现它很清楚,我可以快速扫描代码并找出发生了什么.

(我几乎从不使用"这个",除了防止名字冲突.)



6> Nicholas Man..:

在变量前面使用'm_'或'_'可以更容易地在整个对象的方法中发现成员变量.

输入"m_"或"_"这样的副作用将使intellsense首先弹出它们;)


我更喜欢这个.对于会员名称.绝对明白无误.
如果您正在编写Java,那么很可能您将拥有一个IDE,它会以不同的颜色为您的成员变量着色."m_"只是令人讨厌.

7> Steve B...:

我碰巧喜欢(私有)实例变量的前导下划线,它似乎更容易阅读和区分.当然这件事可以让你遇到边缘情况的麻烦(例如公共实例变量(不常见,我知道) - 无论你怎么称呼他们可能会破坏你的命名惯例:

private int _my_int; public int myInt;? _my_int? )

- 尽管我喜欢这种风格并且认为它是可读的我发现它可能比它的价值更麻烦,因为它不常见并且它可能与您正在使用的代码库中的任何其他内容不匹配.

- 自动代码生成(例如eclipse的生成getter,setter)不太可能理解这一点,因此你必须手动修复它或者使用eclipse进行修复以使其识别.

最终,你要反对其余的(java)世界的首选,并可能会有一些烦恼.正如之前的海报所提到的,代码库的一致性胜过上述所有问题.


设置Eclipse以了解您的前缀(或后缀)首选项非常简单.在_Preferences-> Java-> Code Style_中,有一个表,您可以在其中设置字段,静态字段,静态最终字段,参数和局部变量的变量名称约定.所有代码生成器似乎都遵循这些设置.

8> 小智..:

在过去,使用下划线被认为是不好的风格是有原因的。当运行编译器负担不起的费用,并且监视器配备了惊人的320x240像素分辨率时,通常很难区分_name__name

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有