java代码感悟——关于new对象的时机

本文详细探讨了在应用中遇到的组合框选项重复问题,通过追踪和分析,最终定位到对象重复实例化导致的问题根源。文章深入解析了对象生命周期管理的重要性,提出了解决方案并分享了最佳实践。
下午在完善系统的功能代码的时候,编写完整个模块后再进行调试的时候突然发现了一个小问题,在打开一个新frame时,combo box中选项正常,当关闭这个frame后重新打开发现,combo box选项中出现了2次重复的内容,然后再关闭,再打开,又多了一次,发现这个问题以后,我就怀疑可能是我某个对象在new的时候只new了一次,然后被重复追加,可能存在于数组里面或者集合里面,因此我从view层开始写追踪语句进行追踪查看问题出现在哪。在view层中,只要窗口new一次,数据长度就增加一倍,所以我将数组的创建放在了方法里面,然后赋值长度为0,,然后接着调试发现,虽然数据的长度被赋值为0了,可问题仍然存在,因此数组出现问题的可能性就被排出了,然后最总到业务层,在业务层中设置追踪了返回的数据长度,同样,在方法中创建,并初始化为null ,debug后仍然不行,接着就追踪到数据层中,在数据层中,我发现我竟然在属性里面直接new出来了一个返回集合,而且new不受方法的调用影响,只要调用一次就像集合中追加一次数据,所以造成了只要打开一次窗口combo box中的项就多一倍。因此,在new的时候不是什么时候都可以new的,要考虑到对象的调用情况再去new,不然就会出现各种不合理的问题~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值