这段代码演示了如何使用 StringBuilder 优化 Java 字符串拼接,并建议使用枚举类型代替整型值,提高代码的可读性和可维护性。

StringBuilder queryBuilder = new StringBuilder('m8_service_available');
if (softwareType !=null && softwareType == 1) {
    queryBuilder.append('{m8_object_type=~'mysql|mariadb|redis|mongodb|postgresql'}');
} else if (softwareType !=null && (softwareType == 2 || softwareType == 3)) {
    queryBuilder.append('{m8_object_type=').append(softwareType).append('}');
}
String query = queryBuilder.toString();

代码优化说明:

  1. 使用 StringBuilder:
    • StringBuilder 是一个可变的字符序列,它允许在不创建新的 String 对象的情况下修改字符串内容。在循环或条件语句中频繁拼接字符串时,使用 StringBuilder 比直接使用 String 对象更高效。
  2. 使用枚举类型:
    • 枚举类型可以定义一组常量,使代码更易读、易维护,并避免使用魔数(直接使用数字表示意义)。

示例代码(使用枚举类型):

public enum SoftwareType {
    MYSQL_MARIADB_REDIS_MONGODB_POSTGRESQL(1), 
    TYPE_2(2), 
    TYPE_3(3);
    
    private final int value;
    
    SoftwareType(int value) {
        this.value = value;
    }
    
    public int getValue() {
        return value;
    }
}

// ... 其他代码 ...

StringBuilder queryBuilder = new StringBuilder('m8_service_available');
if (softwareType !=null && softwareType == SoftwareType.MYSQL_MARIADB_REDIS_MONGODB_POSTGRESQL) {
    queryBuilder.append('{m8_object_type=~'mysql|mariadb|redis|mongodb|postgresql'}');
} else if (softwareType !=null && (softwareType == SoftwareType.TYPE_2 || softwareType == SoftwareType.TYPE_3)) {
    queryBuilder.append('{m8_object_type=').append(softwareType.getValue()).append('}');
}
String query = queryBuilder.toString();

通过使用 StringBuilder 和 枚举类型,可以使代码更简洁、更高效、更易读,并提高代码的可维护性。

Java 字符串拼接优化:使用 StringBuilder 和 枚举类型

原文地址: https://www.cveoy.top/t/topic/nUrp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录