【开发记录】不是自己初始化的值,需要做判空/〇处理

发布时间:2024年01月14日

????????在Java中,如果一个变量没有被显式初始化,它将具有默认值。这些默认值依赖于变量的类型,例如,整数类型的默认值是0,布尔类型的默认值是false,引用类型的默认值是null。当我们使用这些未初始化的变量时,可能会出现一些问题,因为它们的值是不确定的。

????????为了避免这些问题,我们通常会在使用之前对变量进行判空或者初始化。这样可以确保变量具有合适的值,从而避免程序运行时的异常和错误。

利处和意义:

????????1. 避免NullPointerException:当一个变量是引用类型,并且没有被初始化时,其默认值是null。如果我们直接使用这个变量,而没有进行判空,就有可能抛出NullPointerException。通过判空处理,我们可以在使用变量之前检查其是否为null,从而避免出现空指针异常。

????????2. 提高代码可读性:通过对未初始化的变量进行判空或者初始化,可以让代码更加清晰和易读。其他开发人员可以清楚地知道变量的状态和值,减少代码理解和维护的困难。

????????3. 防止逻辑错误:有时候,变量的默认值可能与我们期望的不符。例如,一个整型变量的默认值是0,但我们期望它表示一个无效的状态。在这种情况下,我们可以通过判空或者特定的初始化来表示这个无效状态,从而避免逻辑错误。

????????4. 提高程序的健壮性:通过判空和初始化,我们可以在程序运行时及早发现潜在的问题,并采取相应的处理措施。这有助于提高程序的健壮性和可靠性,减少潜在的异常和错误。

????????总而言之,判空和初始化可以提高程序的稳定性和可读性,避免空指针异常和逻辑错误。对于未初始化的变量,始终要根据实际需求进行判空或者初始化,以确保变量具有合适的值。


示例代码:

    //初始化数据
    private static String cmiFormat(String num){
        if (Double.isInfinite(Double.parseDouble(num))){
            return "--";
        }
        if (Double.isNaN(Double.parseDouble(num)) || StringUtils.isBlank(num)){
            num = "0";
        }
        BigDecimal data = new BigDecimal(Validate.treatStr(num,"0"));
        BigDecimal percent = new BigDecimal("100");
        return data.divide(percent, 4, RoundingMode.HALF_UP).toString();
    }    
    
    //返回数据类型为String类型数据类校验
    public static String treatStr(Object content, String def) {
        if (content instanceof String) {
            if (StringUtils.isBlank((String) content) || "null".equals(content)) {
                return def;
            } else {
                return (String) content;
            }
        } else if (content == null) {
            return def;
        } else {
            String data = String.valueOf(content);
            return StringUtils.isBlank(data) ? def : data;
        }
    }  

文章来源:https://blog.csdn.net/qq_46135702/article/details/135578364
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。