字符串拼接与数值相加的混淆
Java语法中一个颇具隐患的特性是+
运算符的二义性——它既可用于字符串拼接,也可用于数值加法运算。当结合隐式的数值到字符串类型转换时,这种特性可能导致难以察觉的错误:
String entryName = "Entry#" + index + 1;
开发者本意是对从0开始的索引进行调整(例如当index=4时希望输出"Entry#5"),但由于Java从左到右执行+
运算,实际会被解释为两次字符串拼接操作,最终生成"Entry#41"。这种错误可能导致运行时异常、查询错误数据或UI显示错误信息等严重后果。
问题根源分析
- 运算符优