1、 在java中是可以用中文作为变量名和方法名的
Java支持中文类名、方法名、属性名,并且不会因为乱码问题导致运行期链接失败。这是Java内核支持UTF-8这一特性决定的。
但是Java语言规范里并不支持这一用法,可以从JavaBean规范看出来。
很多框架不支持,是因为中文属性名与JavaBean规范不友好造成的。
为防止乱码产生,在使用之前,将java代码、页面和数据库编码统一设置为UTF-8
结论:在属性名之外的地方,还是可以尝试使用的,比如成员变量名、类名、方法名中。
因为现代IDE的突飞猛进,我有时候是用英文取个名,把代码写好,在后期优化的时候会把变量名重构成中文的。这样易于输入,也易于理解。
可以使用中文的地方:Java5开始有枚举了,枚举值的名称相当于类名,使用中文优势蛮大的。
2、 JavaBean是否可以用中文命名呢?
如果一个类的成员变量都是中文的,那么它的get/set方法怎么写?
javabean中get/set是否有严格规定的格式?
4、JavaBean放到框架里(Struts2,Hibernate这类的)还能自动设入值吗?
测试环境是: springside 3.3.4(spring3 + struts2 + hibernate + h2database),全部用 utf-8。测试大约过程是,在实体字段全是英文的情况下:
1、添加字段,可以自动对应在数据库中的表添加
2、可以正常取出数据。
当把某个实体的字段改为中文后:
1、hibernate 不能自动添加字段到数据库表中;
2、手动通过sql往数据库表中添加了一个中文字段后,并添加相应的数据;
通过 h2的界面添加修改数据没有问题(h2本身是 java 写的,从这个意义上说,jdbc 是支持中文字段的)。但最后在前台的界面(struts2)中没有显示相应的数据;
在前台界面中输入数据,在没有更改非中文字段数据的情况下,hibernate 没有输出 update 语句;如果更改了非中文字段,那么非中文字段的数据能正常更新,但中文字段的数据没有取到,没法保存。