如何在java中清除(清空)字符串数组?

如何在java中清除(清空)字符串数组?,java,arrays,javabeans,Java,Arrays,Javabeans,我得到了一些细节并存储在一个字符串数组中(使用getter和setter)。之后我将它设置为一个bean(获取了大量数据)。为了避免堆空间错误,每次将字符串数组设置为bean后,我都必须清除它。有什么方法可以清除它吗?我不熟悉这个环境。任何帮助都将非常有用 代码如下所示 while ((nextLine = reader.readNext()) != null &&nextLine.length!=0) { En

我得到了一些细节并存储在一个字符串数组中(使用getter和setter)。之后我将它设置为一个bean(获取了大量数据)。为了避免堆空间错误,每次将字符串数组设置为bean后,我都必须清除它。有什么方法可以清除它吗?我不熟悉这个环境。任何帮助都将非常有用

代码如下所示

               while ((nextLine = reader.readNext()) != null &&nextLine.length!=0) {
                   Encapsulation encap=new Encapsulation();



//         System.out.println("product name"+nextLine[1]);
                encap.setId(nextLine[0]);
                encap.setProduct_name(nextLine[1]);
                encap.setProduct_url(nextLine[6]);
                encap.setProduct_image(nextLine[3]);
                encap.setProduct_price(nextLine[5]);
                encap.setProduct_src("www.flowersuk.com");
                encap.setCountry("Uk");
                encap.setDate(myDate);
                encap.setCategory(nextLine[8]);

                cvobj.DBConnection(encap);
               //at here i need to clear the string array.
              }

不如干脆
nextLine=null?假设没有其他对它的引用悬而未决,那么它应该有资格进行垃圾收集

我无法相信一个包含9个字符串的数据结构会导致堆溢出。特别是由于
encap
在循环中被重新声明,因此早期版本的encap可以在每个循环中自由地进行垃圾收集

故障肯定在别处:可能在
cvobj.DBConnection(encap)中或在读卡器代码中

至于你的实际问题,你不需要做任何事情


p、 在重读这个答案时,我的语气似乎有点刺耳,但不知道如何重写它。:-)

无法清除字符串对象。只有您可以将引用设为null,因此每当调用垃圾收集器时,它都会获取所有垃圾
nextLine
是一个
字符串
而不是一个数组。。。这段代码甚至可以编译吗?在每次设置bean之后,字符串数组都包含大量数据。因此需要在字符串中获取数据空间。Elliott是的,它正在编译并工作。经过一些时间后,它会增加堆空间error@Jack我觉得很难相信给定的
nextLine=reader.readNext()
感谢用户949300的回复