Конструктор Array Point - PullRequest
       6

Конструктор Array Point

0 голосов
/ 08 декабря 2011

Я работаю над программой, в которой я хочу, чтобы моим объектом "this" был массив Point, но у меня возникает эта ошибка при запуске программы, и я не понимаю, почему. Ошибка -> DouglasPeucker. Моя программа:

public class DouglasPeucker {

private double epsilon; 
protected Point[] coinImage;

public DouglasPeucker(Point [] tab) {
    this.coinImage = new Point[tab.length];
    for(int i = 0; i < this.coinImage.length; i++) {
        double abscisse = tab[i].getX();
        double ordonnee = tab[i].getY();
        System.out.println(abscisse + " " + ordonnee);
        this.coinImage[i].setX(abscisse);
        this.coinImage[i].setY(ordonnee);
    }
}

1 Ответ

3 голосов
/ 08 декабря 2011

Вы никогда не присваиваете значение coinImage[i], поэтому его значение по умолчанию будет null, которое вы разыменовываете.Вам нужно что-то вроде:

for(int i = 0; i < this.coinImage.length; i++) {
    double abscisse = tab[i].getX();
    double ordonnee = tab[i].getY();
    System.out.println(abscisse + " " + ordonnee);
    this.coinImage[i] = new Point();
    this.coinImage[i].setX(abscisse);
    this.coinImage[i].setY(ordonnee);
}

Или, желательно, ИМО:

for (int i = 0; i < this.coinImage.length; i++) {
    // I'm assuming Point has a sensible constructor here...
    coinImage[i] = new Point(tab[i].getX(), tab[i].getY());
    // Insert the diagnostics back in if you really need to
}
...