考虑以下 Java 代码段中的常量:
public class ConsumerServiceTestFixture {
private ConsumerServiceTestFixture() {
throw new AssertionError("This class should not be instantiated");
}
public static final String CUSTOMER_ID_NOT_INTEGER = "12345678901";
}
上面的常量CUSTOMER_ID_NOT_INTEGER用于存储不能转换为 Integer 的 String,因为它的值大于 Integer.MAX_VALUE。
这从变量的名称中并不明显,该变量最多表示该值是“无效的”customer_id。没有传达为什么该值无效。
一种选择是写一条评论,内容如下:
// Invalid since this number is greater than Integer.MAX_VALUE
public static final String CUSTOMER_ID_NOT_INTEGER = "12345678901";
但是,如果我们必须编写自文档代码而不使用注释,那么唯一的其他选择就是使变量名称更具描述性。就像是 :
public static final String CUSTOMER_ID_GREATER_THAN_INTEGER_MAX_VALUE = "12345678901";
但是,使用上述选项,我对变量名的长度不满意,特别是如果您考虑以下代码完成 2 中关于最佳变量名长度的片段:
你会建议我如何平衡变量名的长度和代码的可读性?