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であるため、nullポインター例外が発生しています。配列の詳細については、次のリンクを参照してください:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

于 2012-05-12T16:54:37.427 に答える