1

我是 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[][];但我不知道如何解决。感谢您的帮助!

4

2 回答 2

9

您需要先初始化rows数组,然后才能在其中存储值:

String[][] rows = new String[10][10];

使用您需要的任何尺寸。我10随机选择的。我建议在你的类构造函数中初始化数组。

于 2012-05-12T16:48:39.640 回答
4

您声明了字符串数组但未对其进行初始化...在使用它之前,您必须将其初始化为
row=new String [1][1]。由于您将数组声明为实例变量,因此分配给它的默认值是 null 这就是您收到空指针异常的原因。有关数组的更多信息,请访问以下链接:
http ://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

于 2012-05-12T16:54:37.427 回答