2014-01-12 4 views
0

В конструкторе я пытаюсь построить массив Point2D.Double из массива Point2D.
В принципе, я хочу добавить координаты в график.
Я сделал это:Java: Создание массива Point2D.Double

private Point2D.Double [] points; 

public EmbeddedGraph(Point2D[] pointArray){ 
    super(pointArray.length); 
    for (int i=0; i<pointArray.length; i++){ 
    points[i] = new Point2D.Double(); 
    points[i].setLocation(pointArray[i].getX(), pointArray[i].getY()); 
    } 
} 

Но я получаю NullPointerException.

Массив координат (pointArray) исходит из заданного кода упражнения. Поэтому я предполагаю, что ошибка с моей стороны.

Point2D[] coordinates = new Point2D[4]; 
coordinates[0] = new Point2D.Double(-14,0); 
coordinates[1] = new Point2D.Double(0,10); 
coordinates[2] = new Point2D.Double(0,-10); 
coordinates[3] = new Point2D.Double(14,0); 
EmbeddedGraph g = new EmbeddedGraph(coordinates); 
+1

У вас, вероятно, есть нуль в массиве, который вы передаете этому конструктору. Можете ли вы показать нам код, в котором вы создаете 'EmbeddedGraph'? –

+0

добавлен в начальный вопрос – sebastian

+0

OK, теперь какая строка выбрасывает исключение Null Pointer? Ваша трассировка стека расскажет вам об этом. –

ответ

3

Вы пытаетесь заполнить points[] массив, когда она равна нулю. Вы должны сделать это первым:

`points = new Point2D[pointArray.length]` 

(в случае, если это не сделано в super());

+0

да. Я пропустил это. Спасибо. – sebastian

Смежные вопросы