我是java编程的新手,我无法找到问题的解决方案。我认为这是一个非常容易的问题,但我无法弄清楚我做错了什么,所以我希望你们中的一个可以帮助我。问题是当我尝试在数组中存储一些数据时,它返回以下错误:
Exception in thread "main" java.lang.NullPointerException
public class FetchData{
private String rows[][];
private int rowCount;
public FetchData(){
rowCount = 0;
}
public boolean ConnectAndFetch(String start, String end){
//not relevant to the problem
for(...){
List<WebElementdivList = driver.findElements(By.tagName("div"));
int divCount = 0;
int colCount = 0;
for (WebElement elem : divList) {
if(divCount 24){
if(colCount < 17){
System.out.println(elem.getText());
//System.out.println(colCount);
//System.out.println(rowCount);
rows[rowCount][colCount] = elem.getText();
colCount++;
} else {
rowCount += 1;
colCount = 0;
}
}
divCount++;
}
}
return true;
}
我认为它与声明private String rows[][];
有关,但我不知道如何解决它。我很感激你的帮助!
答案 0 :(得分:9)
您需要首先初始化rows
数组,然后才能在其中存储值:
String[][] rows = new String[10][10];
使用您需要的任何尺寸。我随机选择了10
。我建议在类构造函数中初始化数组。
答案 1 :(得分:4)
你声明了字符串数组但没有初始化它...在使用之前你必须将它初始化为
row = new String [1] [1]。由于您将数组声明为实例变量,因此分配给它的默认值为null,这就是为什么您将获得空指针异常。
有关阵列访问的更多信息,请访问以下链接:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html