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


1937

被折叠的 条评论
为什么被折叠?



