Integer.getInteger() 和 Integer.valueOf ()的区别

这篇博客揭示了一个低级但常见的错误,区分了Integer.getInteger()从系统获取属性值与Integer.valueOf()将字符串转换为整数的功能。通过查看源码,作者强调了正确使用这两个方法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚才遇到一个很  NC  的bug,别人写的,哈哈。赶紧写了这篇博客,供大家参考,千万别犯这么低级的错误。

Now,说下情况先

之前代码的写法

parentContrParam.setIsInternet(Integer.getInteger(groupListParam.getMacfilter()));

一看也没什么问题啊,但是点进去看源码。

public static Integer getInteger(String nm, Integer val) {
        String v = null;
        try {
            v = System.getProperty(nm);
        } catch (IllegalArgumentException | NullPointerException e) {
        }
        if (v != null) {
            try {
                return Integer.decode(v);
            } catch (NumberFormatException e) {
            }
        }
        return val;
    }

Integer.getInteger()是从系统里面获取的啊。

赶紧给改了,改成 Integer.valueOf();

parentContrParam.setIsInternet(Integer.valueOf(groupListParam.getMacfilter()));

 

请记住:

Integer.getInteger

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值