Java 数组正在返回NULL

Java 数组正在返回NULL,java,Java,我的代码 package com.xchanging.selenium.utility; import java.io.IOException; import java.util.LinkedHashMap; import org.apache.commons.lang3.ArrayUtils; public class DataProviderConvertor extends ReadExcel { public static Object[][] convertData(S

我的代码

package com.xchanging.selenium.utility;

import java.io.IOException;
import java.util.LinkedHashMap;

import org.apache.commons.lang3.ArrayUtils;

public class DataProviderConvertor extends ReadExcel {

    public static Object[][] convertData(String sheetName, String testCaseName)
            throws IOException {

        LinkedHashMap<String, String> table = ReadExcel.getData(sheetName,
                testCaseName);
        String[] myStringArray = new String[table.size()];
        for (String key : table.values()) {
            System.out.println("Keyvalues " + key.toString());
            String value = key.toString();
            ArrayUtils.add(myStringArray, value);
        }
        System.out.println("1st Index: " myStringArray[0]);
    }
  }
我希望此数组中有6个元素,但所有元素都返回NULL。。为什么它不返回预期值

ArrayUtils.add(myStringArray, value);
此方法创建并返回添加了
值的新数组

您需要分配结果:

myStringArray = ArrayUtils.add(myStringArray, value);
必须这样做,因为无法调整数组的大小

此方法创建并返回添加了
值的新数组

您需要分配结果:

myStringArray = ArrayUtils.add(myStringArray, value);
必须这样做,因为无法调整数组的大小。

试试看

for (String key : table.values()) {
     System.out.println("Keyvalues " + key.toString());
     String value = key.toString();
     myStringArray =ArrayUtils.addAll(myStringArray, value);
}

试一试


ArrayUtil.add方法复制数组,然后在新复制的数组末尾添加新元素

所以,我认为这就是代码的问题所在


这就是为什么MyStringaray显示大小为0。复制MyStringaray并形成新的字符串数组,然后将元素添加到其中。

ArrayUtil.add方法复制数组,然后在新复制的数组末尾添加新元素

所以,我认为这就是代码的问题所在


这就是为什么MyStringaray显示大小为0。复制MyStringaray并形成新的字符串数组,然后将元素添加到其中。

简单得多的方法如何

public static Object[][] convertData(String sheetName, String testCaseName)
        throws IOException {

    LinkedHashMap<String, String> table = ReadExcel.getData(sheetName,
            testCaseName);

    String[] myStringArray = table.values().toArray( new String[ 0 ] );

    System.out.println("1st Index: " + myStringArray[0]);
}
公共静态对象[][]转换数据(字符串sheetName、字符串testCaseName)
抛出IOException{
LinkedHashMap table=ReadExcel.getData(sheetName,
testCaseName);
字符串[]myStringArray=table.values().toArray(新字符串[0]);
System.out.println(“第一个索引:+myStringArray[0]);
}

更简单的方法怎么样

public static Object[][] convertData(String sheetName, String testCaseName)
        throws IOException {

    LinkedHashMap<String, String> table = ReadExcel.getData(sheetName,
            testCaseName);

    String[] myStringArray = table.values().toArray( new String[ 0 ] );

    System.out.println("1st Index: " + myStringArray[0]);
}
公共静态对象[][]转换数据(字符串sheetName、字符串testCaseName)
抛出IOException{
LinkedHashMap table=ReadExcel.getData(sheetName,
testCaseName);
字符串[]myStringArray=table.values().toArray(新字符串[0]);
System.out.println(“第一个索引:+myStringArray[0]);
}
您可以尝试以下方法:

int index =0;

for (String key : table.values()) {
            System.out.println("Keyvalues " + key.toString());
            String value = key.toString();
            myStringArray[index++] = value;            
        }
你可以试试这个-:

int index =0;

for (String key : table.values()) {
            System.out.println("Keyvalues " + key.toString());
            String value = key.toString();
            myStringArray[index++] = value;            
        }

只需要两个更改,否则代码就完全可以了

1.
String[]myStringArray=新字符串[table.size()],更改为

String[] myStringArray = null;
myStringArray = ArrayUtils.add(myStringArray, value);
2.
ArrayUtils.add(myStringArray,value)更改为

String[] myStringArray = null;
myStringArray = ArrayUtils.add(myStringArray, value);

Rest您可以阅读并调试这个方法。

只需要两个更改,否则代码就很好了

1.
String[]myStringArray=新字符串[table.size()],更改为

String[] myStringArray = null;
myStringArray = ArrayUtils.add(myStringArray, value);
2.
ArrayUtils.add(myStringArray,value)更改为

String[] myStringArray = null;
myStringArray = ArrayUtils.add(myStringArray, value);

Rest您可以阅读并调试有关此方法的信息。

您将返回哪里btw@ChanGan只需要两个更改,代码很好,您要返回哪里btw@ChanGan只需要两个更改,代码是fine方法add(String[],String)未为类型dataProviderConvertor定义方法add(String[],String)未为类型DataProviderConverter定义