Wieso gibt....

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Wieso gibt....

Beitrag von marek » 30. Jan 2008 10:22

... das hier:

public ArrayList<Airport> airports = new ArrayList<Airport>();

mit dem Aufruf:

airports.add(new Airport(name, x, y));

eine NullPointerException ? Versteh ich nicht so ganz...
Thx!

PS.: Guten Morgen!

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Re: Wieso gibt....

Beitrag von Osterlaus » 30. Jan 2008 10:38

Probier mal, den einzelnen Airport erst an eine Variable zuzuweisen und dann zur Liste hinzuzufügen. Vielleicht finden wir so eine Lösung für das für mich grade auch verwunderliche Problem.

Benutzeravatar
taufrisch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 107
Registriert: 30. Sep 2007 02:42
Wohnort: 127.0.0.1

Re: Wieso gibt....

Beitrag von taufrisch » 30. Jan 2008 10:42

Works for me:

Code: Alles auswählen

import java.util.*;

public class Airport {
    public static ArrayList<Airport> airports = new ArrayList<Airport>();

    public Airport(String name, int x, int y) {}

    public static void main (String args[]) {
        String name = "Name";
        int x = 0, y = 0;
        
        airports.add(new Airport(name, x, y));
    }
}
Premature optimization is the root of all evil.

Don't anthropomorphize computers: They hate that.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Wieso gibt....

Beitrag von Stumpf.Alex » 30. Jan 2008 10:45

Vielleicht stimmt irgendwo eine Vorbedingung nicht...vielleicht steckt der Fehlerteufel wo anders, weil der Aufruf an sich korrekt ist.

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Wieso gibt....

Beitrag von marek » 30. Jan 2008 13:07

Jo... zumal meine Kommiltonen dies genauso gemacht haben, und es bei denen einwandfrei funktioniert... :?

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Wieso gibt....

Beitrag von marek » 30. Jan 2008 13:19

Osterlaus hat geschrieben:Probier mal, den einzelnen Airport erst an eine Variable zuzuweisen und dann zur Liste hinzuzufügen. Vielleicht finden wir so eine Lösung für das für mich grade auch verwunderliche Problem.
Das habe ich bereits getan...
Das Problem kann, meinen Testergebnissen nach, nur am Aufruf von add(...) liegen. Ich weiß aber immer noch nicht, was genau ein NullPointer sein soll: die Liste oder das Flugzeug?
Werd mir die Methode demnächst von jemand anders geben lassen, bevor ich zu viel Zeit damit verschwende :x

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Wieso gibt....

Beitrag von guido » 31. Jan 2008 10:14

marek hat geschrieben:
Osterlaus hat geschrieben:Probier mal, den einzelnen Airport erst an eine Variable zuzuweisen und dann zur Liste hinzuzufügen. Vielleicht finden wir so eine Lösung für das für mich grade auch verwunderliche Problem.
Das habe ich bereits getan...
Das Problem kann, meinen Testergebnissen nach, nur am Aufruf von add(...) liegen. Ich weiß aber immer noch nicht, was genau ein NullPointer sein soll: die Liste oder das Flugzeug?
Werd mir die Methode demnächst von jemand anders geben lassen, bevor ich zu viel Zeit damit verschwende :x
Es sieht korrekt aus, also liegt der Fehler wohl irgendwo anders. das "new..." kann keine NullPointerException liefern; die kann wohl nur kommen (wenn Du nicht in der falschen Zeile bist!), wenn "airports" null ist. Vielleicht wird es in einer Methode angelegt, wo es als lokale Variable deklariert wurde und daher nicht das Attribut der Klasse initialisiert?

Guido

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Wieso gibt....

Beitrag von marek » 31. Jan 2008 11:19

Attribut der Klasse? Also ich habe sie als Instanzvariable deklariert, denn sie wird in der gegebenen Test-Klasse auch nicht statisch abgerufen.
Wobei in der letzten HA hatte ich auch bemerkt, dass auf Klassenvariablen über ein Objekt zugegriffen worden ist...

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Wieso gibt....

Beitrag von guido » 31. Jan 2008 11:21

marek hat geschrieben:Attribut der Klasse? Also ich habe sie als Instanzvariable deklariert, denn sie wird in der gegebenen Test-Klasse auch nicht statisch abgerufen.
Wobei in der letzten HA hatte ich auch bemerkt, dass auf Klassenvariablen über ein Objekt zugegriffen worden ist...
"Attribut der Klasse" war falsch ausgedrückt; ich meinte Instanzvariable, sorry!

Guido

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Wieso gibt....

Beitrag von marek » 31. Jan 2008 11:31

OK, ich hab's jetzt herausgefunden: der NullPointer war mein AirborneComputer. Da ich ja die vorgegebenen Testzeilen vorläufig auskommentiert hatte, fehlte die Initialisierung: test = new ...
Frage mich nur, warum der Compiler nicht wie gewöhnlich die "variable is not initialized" Meldung rausgespuckt hat :oops:

Antworten

Zurück zu „Archiv“