2维字符串数组声明,线程“main”中的异常java.lang.NullPointerException java

时间:2012-05-12 16:46:16

标签: java arrays string nullpointerexception declaration

我是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[][];有关,但我不知道如何解决它。我很感激你的帮助!

2 个答案:

答案 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