在写 java 代码时,是可以用 [color=red]中文[/color]作为[color=red]变量名[/color]和[color=red]方法名[/color]的。从可读性和可维护性来说,似乎用中文作为 变量名和方法名 对我们中国人来说具有更好的可读性和更好的可维护性。
请问,你会这样用吗?为什么?
在写 java 代码时,是可以用 [color=red]中文[/color]作为[color=red]变量名[/color]和[color=red]方法名[/color]的。从可读性和可维护性来说,似乎用中文作为 变量名和方法名 对我们中国人来说具有更好的可读性和更好的可维护性。
请问,你会这样用吗?为什么?
为了说这个问题,先来看个活生生的例子:http://blog.csdn.net/niko7/archive/2004/12/22/225327.aspx
比如类名是中文的,每次new 的时候就麻烦了。方法名是中文的,调用的时候就麻烦了。
这种麻烦主要是来自代码辅助生成时,按了“.”以后必须往下翻,或者切换到中文输入法输入,很麻烦。并且完全享受不到IDE的驼峰提示的好处了。
还有个头疼的问题是,中文没有大小写区别,导致bean的属性命名规范体现不出来,所以会导致一些框架出现问题。而JavaBean的规范之所以那么规定,显示是没有考虑到中文。
所以,中文能作为类名,方法名,属性名,变量名是纯属偶然,仅仅是因为Java内核支持UTF-8,所以这些字符都没有问题;也不会出现上面说的,找不到变量的问题,在class文件内都是同一编码的,jvm内核就是支持UTF-8的。可以放心使用。
结论是:Java支持中文类名、方法名、属性名,并且不会因为乱码问题导致运行期链接失败。这是Java内核支持UTF-8这一特性决定的。
但是Java语言规范里并不支持这一用法,可以从JavaBean规范看出来。
很多框架不支持,是因为中文属性名与JavaBean规范不友好造成的。
为了带来有限的“容易理解”,却导致程序功能不正常了,是得不偿失的,所以:不推荐使用。
那么在属性名之外的地方,还是可以尝试使用的,比如成员变量名、类名、方法名中。
Java5开始有枚举了,枚举值的名称相当于类名,使用中文优势蛮大的。
因为现代IDE的突飞猛进,我有时候是用英文取个名,把代码写好,在后期优化的时候会把变量名重构成中文的。这样易于输入,也易于理解。