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定义