널 포인터 액세스 : 변수 arrayLocations는이 위치에 null이 될 수 있습니다

크리스 KELI :

내가 파일에 읽고 그것에서 부품을 얻으려고 노력하지만,있어 그래서 난 줄에서 위의 오류가 계속

arrayLocations [I] = 새 위치 (사용해 Double.parseDouble (xArray [1]) 사용해 Double.parseDouble (xArray [2]))

    int total;
    BufferedReader bfr;
    String lineObtained = null;
    Location[] arrayLocations = null;

    try {

        bfr = Files.newBufferedReader(path);
        lineObtained = bfr.readLine();

    } catch (IOException e) {

        e.printStackTrace();
        return null;
    }

    String split = lineObtained.split("POSTAL_OFFICE")[1];
    String[] y = split.split(" ");
    double xCoord = Double.parseDouble(y[0].trim());
    double yCoord = Double.parseDouble(y[1].trim());
    Location postOffice = new Location(xCoord, yCoord);

    String split1 = lineObtained.split("WORKER_ADDRESS")[1];
    String[] y1 = split.split(" ");
    double xCoord1 = Double.parseDouble(y1[0].trim());
    double yCoord1 = Double.parseDouble(y1[1].trim());
    Location home = new Location(xCoord, yCoord);        

    split = lineObtained.split("POSTAL_ADDRESSES")[1].trim();
    String[] splits = split.split("\\r?\\n");

    for(int i = 0; i < splits.length; i++) {
        String[] xArray = splits[i].split(" ");
        arrayLocations[i] = new Location(Double.parseDouble(xArray[1]), Double.parseDouble(xArray[2]));
    }

    PWPInstance instance = new PWPInstance(total, arrayLocations, postOffice, home, random);
    return instance;
페데리코 정보 Klez Culloca :

당신은 선언 arrayLocation으로 null그것을 초기화하지 않습니다.

당신은 아마 뭔가를 원하는

Location[] arrayLocations = new Location[splits.length];

그건 당신이 배열 필요로 얼마나 큰 알고 당신이 그것을 사용하는 첫 번째 장소와 장소이기 때문에 그냥 루프 전에 (이 필요한 때 방법의 시작 부분에 선언 할 필요없이, 선언).

추천

출처http://10.200.1.11:23101/article/api/json?id=401006&siteId=1