NullPointer Exceptions

Rob1

Mitglied
Ich habe hier meine Exceptions und finde das Problem nicht.
Ich habe eine Klasse Form von der alle anderen erben.
Danach Polygon . Polygon nimmt ein Array von Punkten entgegen.
Viereck und Dreieck nehmen Punkte entgegen. Und Punkt ist die letzte Klasse.





java.lang.NullPointerException
at Polygon.area(Polygon.java:45)
at Form.toString(Form.java:53)
at Polygon.<init>(Polygon.java:13)
at Dreieck.<init>(Dreieck.java:12)
at Test.starteTest(Test.java:41)
java.lang.NullPointerException
at Polygon.area(Polygon.java:46)
at Form.toString(Form.java:53)
at Polygon.<init>(Polygon.java:13)
at Dreieck.<init>(Dreieck.java:12)
at Test.starteTest(Test.java:41)
java.lang.NullPointerException
at Polygon.area(Polygon.java:46)
at Form.toString(Form.java:53)
at Polygon.<init>(Polygon.java:13)
at Dreieck.<init>(Dreieck.java:12)
at Test.starteTest(Test.java:41)
java.lang.NullPointerException
at Polygon.area(Polygon.java:46)
at Form.toString(Form.java:53)
at Polygon.<init>(Polygon.java:13)
at Dreieck.<init>(Dreieck.java:12)
at Test.starteTest(Test.java:41)
java.lang.NullPointerException
at Polygon.area(Polygon.java:50)
at Form.toString(Form.java:53)
at Polygon.<init>(Polygon.java:13)
at Dreieck.<init>(Dreieck.java:12)
at Test.starteTest(Test.java:41)
java.lang.NullPointerException
at Polygon.area(Polygon.java:50)
at Form.toString(Form.java:53)
at Polygon.<init>(Polygon.java:13)
at Dreieck.<init>(Dreieck.java:12)
at Test.starteTest(Test.java:41)

Java:
public  class Form
{
    // instance variables - replace the example below with your own
   
   private static int id=0;
   private String typ;
   private int obj;
   
   private String properties;
   
   public Form(){
       
       id++;
       obj=id;
       
    }
    public int getId(){
        return this.obj;
    }
    
    public String getTyp(){
        return this.typ;
    }
    
    public String setTyp(String typ1){
        return this.typ=typ1;
    }
    
    public String getProperties(){
        return this.properties;
    }
    
    public String setProperties(String prop){
        return this.properties=prop;
    }
   
    public  double area(){
       return 0.0;
    }
    
    public  double outline(){
       return 0.0;
    
    }
    public  String toString(){
    return this.area()+ " " + this.outline()+ " "+ this.typ + " " + properties + " " + "]";

    }
}

Java:
public class Polygon extends Form
{
    // instance variables - replace the example below with your own
   private Punkt[] array;
   
   {super.toString();}
   String s1 ="Polygon";
   
   public Polygon(Punkt[] aP){
       super();
       array= new Punkt[aP.length];
       for(int i=0;i<aP.length;i++){
           array[i]=aP[i];
           
        }
       
       super.setTyp(s1);
       super.setProperties(this.sum(aP));

    }
    
   public Polygon(Polygon p){
      this.array=p.getArray() ;
      super.setTyp("Polygon");
      super.setProperties(this.sum(p.getArray()));
    }
    
    public String sum(Punkt[] p){
        String s="";
        for(int i=0; i<p.length;i++){
            
        s+=p[i]+",";
    }
    return s;
   }
   
   public Punkt[] getArray(){
       return array;
    }
    
   public double area(){
       double s=0;
       for(int i=0; i<array.length-1;i++){
           if(array[i]==null)
           break;
           s+=(array[i].getY()+array[i+1].getY())*(array[i].getX()-array[i+1].getX());
           
        }
        s+=(array[array.length-1].getY()+array[0].getY())*(array[array.length-1].getX()-array[0].getX());
        if(s>=0){
            s=s/2;
        }else{
            s=-s/2;
        }
       
       return s;
    }
    
   public double outline(){
       double o=0;
       for(int i=0; i<array.length-1;i++){
           if(array[i]==null)
           break;
           o+=array[i].distance(array[i+1]);
           
        }
        o+=array[array.length-1].distance(array[0]);
        return o;
    }
}

Java:
public class Viereck extends Polygon
{
    // instance variables - replace the example below with your own
   
    
    {super.toString();}
    
    public Viereck(Punkt p1,Punkt p2,Punkt p3,Punkt p4){
       super(new Punkt[]{p1,p2,p3,p4});
        
       String s="Dreieck";
        
            this.setTyp(s);
            this.setProperties(this.sum(new Punkt[]{p1,p2,p3,p4}));
        }
            
        
        
    
}
Java:
public class Dreieck extends Polygon//ngi33
{
    // instance variables - replace the example below with your own
   public Dreieck(Punkt p1, Punkt p2, Punkt p3){
       super(new Punkt[]{p1,p2,p3});
       String s="Dreieck";
       
       setTyp(s);
       setProperties(this.sum(new Punkt[]{p1,p2,p3}));
        
            System.out.println("Kein Dreieck");
            
        }
       
    
}
Java:
public class Punkt extends Form
{

private double x;
private double y;




public Punkt(double a, double b){

this.x=a;
this.y=b;
super.setTyp("Punkt");
super.setProperties(","+ x + "," + y);


}

public Punkt(Punkt point){
this.x=point.getX();
this.y=point.getY();
super.setTyp("Punkt");
super.setProperties(","+ x + "," + y);
}

public double getX(){

return this.x;
}

public double getY(){
return this.y;
}

public double distance(Punkt p){
return Math.sqrt(((x-p.getX())*(x-p.getX())) +((y-p.getY())*(y-p.getY())));
}


public String toString(){
return "Punkt[" + getId() + ","+this.x+","+this.y+"]";

}


    // instance variables - replace the example below with your own
    
}
 
Zuletzt bearbeitet:
S

SlaterB

Gast
siehst du den StackTrace?
wenn da
> at Polygon.area(Polygon.java:45)
steht, dann heißt das dass der Fehler in Zeile 45 steht,
wäre günstig zu wissen welche Zeile das hier im Forum ist,

andererseits sind ja mehrere Zeilen betroffen, viel kommt dabei nicht raus,
es wird schon irgendwas mit dem Array sein

schau dir doch ganz einfach mit Debugger oder System.out.println() an, ob das Array und sein Inhalt immer gesetzt ist,
NullPointerExceptions sind immer ganz einfach: eine verwendete Variable ist null, herausfinden welche, prüfen warum sie nicht null sein sollte, wo sie gesetzt wird usw..

> if(array==null) break;
> s+=(array.getY()+array[i+1].getY()) ...
sieht etwas komisch aus, array wird geprüft, auf array[i+1] dann aber ohne Prüfung zugegriffen?


ein break schon bei i == 0 und dann wenig später
> s+=(array[array.length-1].getY()
könnte eine zweite Problemstelle sein,

wie es aber gleich zu drei NullPointer-Code-Stellen kommt, sehe ich noch nicht ;)

java.lang.NullPointerException
at Polygon.area(Polygon.java:45)
..
java.lang.NullPointerException
at Polygon.area(Polygon.java:46)
..
java.lang.NullPointerException
at Polygon.area(Polygon.java:50)


kommt es doch irgendwie zu array == null?
die Konstruktoren sehen sicher aus, und 45, 46, 50 kommt nicht hin,
na kannst du alles bestens testen
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
In Polygon machst Du das hier (warum eigentlich):
Java:
{super.toString();}
Wegen super ist das die toString()-Methode von Form. In dieser wird die überschreibbare (also nicht finale) Methode area() aufgerufen und zwar die von Polygon leider nicht von Form. Zu diesem Zeitupunkt ist das Array, auf das die Methode zugreifen möchte aber noch garnicht initialisiert.

Das Grundproblem ist, dass Du in Superklassen etwas wild überschreibbare Methoden aufrufst, die dort, wo sie überschrieben sind, noch nicht auf ein valide initialisiertes Objekt zugreifen können. Genau aus solchem Grund sollte man das auch vermeiden (außer bei speziellen Patterns wie Template-Method).
 
Zuletzt bearbeitet von einem Moderator:

Rob1

Mitglied
Ich hab meine Form-Klasse umgeschrieben und fast alles rausgeworfen. Jetzt klappt es.
Hier meine Lösung:
Java:
public  class Form
{
    // instance variables - replace the example below with your own
   
   private static int id=0;
   private String typ=" ";
   private int obj=0;
   
   private String properties;
   
   public Form(){
       
       id++;
       obj=id;
       
    }
    public int getId(){
        return this.obj;
    }
    
    public String getTyp(){
        return this.typ;
    }
    
    public String setTyp(String typ1){
        return this.typ=typ1;
    }
    
   
   
   
    public  double area(){
       return 0.0;
    }
    
    public  double outline(){
       return 0.0;
    
    }
    public  String toString(){
    return "  ";

    }
}
Java:
public class Polygon extends Form
{
    // instance variables - replace the example below with your own
   private Punkt[] array;
   
   
   
   
   public Polygon(Punkt[] aP){
       super();
       array= new Punkt[aP.length];
       for(int i=0;i<aP.length;i++){
           array[i]=aP[i];
           
        }
       
       super.setTyp("Polygon");
       
    }
    
   public Polygon(Polygon p){
      this.array=p.getArray() ;
      super.setTyp("Polygon");
      
    }
    
    
   
   public Punkt[] getArray(){
       return array;
    }
    
   public double area(){
       double s=0;
       for(int i=0; i<array.length-1;i++){
           if(array[i]==null)
           break;
           s+=(array[i].getY()+array[i+1].getY())*(array[i].getX()-array[i+1].getX());
           
        }
        s+=(array[array.length-1].getY()+array[0].getY())*(array[array.length-1].getX()-array[0].getX());
        if(s>=0){
            s=s/2;
        }else{
            s=-s/2;
        }
       
       return s;
    }
    
   public double outline(){
       double o=0;
       for(int i=0; i<array.length-1;i++){
           if(array[i]==null)
           break;
           o+=array[i].distance(array[i+1]);
           
        }
        o+=array[array.length-1].distance(array[0]);
        return o;
    }
    
    public String toString(){
        String s="";
        for(int i=0; i<array.length-1;i++){
            s+=array[i].toString()+",";
        }
        s+=array[array.length-1].toString();
        
        return this.getTyp() +"["+s+"]";
    }
}
Java:
public class Punkt extends Form
{

private double x;
private double y;




public Punkt(double a, double b){

this.x=a;
this.y=b;
super.setTyp("Punkt");



}

public Punkt(Punkt point){
super();
this.x=point.getX();
this.y=point.getY();
super.setTyp("Punkt");

}

public double getX(){

return this.x;
}

public double getY(){
return this.y;
}

public double distance(Punkt p){
return Math.sqrt(((x-p.getX())*(x-p.getX())) +((y-p.getY())*(y-p.getY())));
}


public String toString(){
return getTyp()+"[" + getId() + ","+this.x+","+this.y+"]";

}


    // instance variables - replace the example below with your own
    
}
Java:
public class Kreis extends Form
{

    // instance variables - replace the example below with your own
   private Punkt mittelpunkt;
   private double radius;
   
   {super.toString();}

   public Kreis(Punkt m, double r){
       this.mittelpunkt=m;
       this.radius=r;
       
       

    }
   
    
   public Kreis(Kreis k){
       this.mittelpunkt=k.getMittelpunkt();
       this.radius=k.getRadius();
       

       

    }
    
   public Punkt getMittelpunkt(){
       return mittelpunkt;
    }
    
   public double getRadius(){
       return radius;
    }
    
   public double area(){
       double s=0;
       s=Math.PI*radius*radius;
       return s;
    }
    
   public double outline(){
       double s=0;
       s=2*(Math.PI*radius);
       return s;
    }


public String toString(){
return "Kreis"+"["+getId()+","+radius+","+mittelpunkt.toString()+"]";

}
}
Java:
public class Viereck extends Polygon
{
    // instance variables - replace the example below with your own
   
    
    {super.toString();}
    
    public Viereck(Punkt p1,Punkt p2,Punkt p3,Punkt p4){
       super(new Punkt[]{p1,p2,p3,p4});
        
       
        
            
            System.out.println("Viereck"+super.toString());
        }
            
        
        
    
}
Java:
public class Dreieck extends Polygon//ngi33
{
    // instance variables - replace the example below with your own
   public Dreieck(Punkt p1, Punkt p2, Punkt p3){
       super(new Punkt[]{p1,p2,p3});
       
       
       
       
        System.out.println("Dreieck"+super.toString());
            
            
        }
       
   
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
Dimax BufferedReader.readLine().length() wirft NullPointer Java Basics - Anfänger-Themen 6
AlexG. Nullpointer Exeption Java Basics - Anfänger-Themen 46
AlexG. Nullpointer exeption Fehler Java Basics - Anfänger-Themen 0
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
N Nullpointer exception Java Basics - Anfänger-Themen 4
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
J Nullpointer aber wo? Java Basics - Anfänger-Themen 12
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Nullpointer beim Erstellen eines Imageicons Java Basics - Anfänger-Themen 2
O Perfomance: Arraylist absichtlich zum Nullpointer schicken... Java Basics - Anfänger-Themen 16
S Iterator next() Nullpointer Java Basics - Anfänger-Themen 2
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
R indexOf wirft NullPointer Exception Java Basics - Anfänger-Themen 2
Q CardLayout und NullPointer Java Basics - Anfänger-Themen 3
P ArrayList Nullpointer? Java Basics - Anfänger-Themen 4
H Nullpointer Exception Java Basics - Anfänger-Themen 8
P NullPointer Exception Java Basics - Anfänger-Themen 6
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
M TextField Nullpointer Exc Java Basics - Anfänger-Themen 8
C Java Nullpointer Exception in 2D-Spiel Snake Java Basics - Anfänger-Themen 8
N NullPointer Exception bei setSource (Audioplayer mit JMF) Java Basics - Anfänger-Themen 6
I Array - Nullpointer Ausnahme Java Basics - Anfänger-Themen 2
J Methoden in externer Klasse -> Nullpointer Exception Java Basics - Anfänger-Themen 9
J NullPointer bei ArrayList.add Java Basics - Anfänger-Themen 6
J Nullpointer Exception - Warum? Java Basics - Anfänger-Themen 9
C NullPointer Java Basics - Anfänger-Themen 3
D NullPointer bei ActionCommand in Array Java Basics - Anfänger-Themen 2
D Dubioser Nullpointer Java Basics - Anfänger-Themen 5
M Java3D TransformChanged nullpointer ??? Java Basics - Anfänger-Themen 2
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
X Nullpointer Fehler Java Basics - Anfänger-Themen 3
D Nullpointer Exception Java Basics - Anfänger-Themen 2
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
MEETyA NullPointer Exception - Sudoku Java Basics - Anfänger-Themen 2
R Probleme mit NullPointer beim Mp3 abspielen (JMF) Java Basics - Anfänger-Themen 21
D Nullpointer exception bei: if( (rc.getTower != null) ) {..} Java Basics - Anfänger-Themen 2
Antoras Nullpointer bei Wertübergabe Java Basics - Anfänger-Themen 10
Antoras Swing repaint und Nullpointer Java Basics - Anfänger-Themen 6
G NullPointer bei if anweisung Java Basics - Anfänger-Themen 14
Antoras NullPointer und Swing-Problem Java Basics - Anfänger-Themen 2
G (csv)Datei lesen FindBug findet mgl. NullPointer - wie lösen Java Basics - Anfänger-Themen 3
A g=panel.getGraphics() im Thread => Nullpointer Java Basics - Anfänger-Themen 9
G Problem mit Nullpointer Exception Java Basics - Anfänger-Themen 2
K Nullpointer Exception? Was tun? Java Basics - Anfänger-Themen 7
T KeyListener, Nullpointer und eine unbekannte Variable Java Basics - Anfänger-Themen 6
E Fehler NullPointer beim Ausführen Java Basics - Anfänger-Themen 4
E nullpointer bei BufferedImage Java Basics - Anfänger-Themen 2
R Wieder mal ne NullPointer Exception. Java Basics - Anfänger-Themen 8
D nullpointer exception Java Basics - Anfänger-Themen 12
S Arrays und Nullpointer Java Basics - Anfänger-Themen 6
D Problem mit Vector / Nullpointer Exception Java Basics - Anfänger-Themen 3
S Nullpointer Exception bei Point2D Java Basics - Anfänger-Themen 2
8 JLayer Nullpointer Exception Java Basics - Anfänger-Themen 6
megachucky kleines problem mit einer nullpointer exception Java Basics - Anfänger-Themen 2
B NullPointer... Java Basics - Anfänger-Themen 6
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
C Exceptions identifizieren Java Basics - Anfänger-Themen 5
A Exceptions mit objektreferenzen Java Basics - Anfänger-Themen 4
A Exceptions und methods Java Basics - Anfänger-Themen 2
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
X Exceptions Benutzereingaben Java Basics - Anfänger-Themen 4
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
L Exceptions und Konten Java Basics - Anfänger-Themen 21
D Frage zu Exceptions Java Basics - Anfänger-Themen 8
I Wie programmiert man Exceptions? Java Basics - Anfänger-Themen 4
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
C Erste Schritte Exceptions nicht verstanden Java Basics - Anfänger-Themen 2
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
J Exceptions Java Basics - Anfänger-Themen 69
C Exceptions Java Basics - Anfänger-Themen 8
C Exceptions Java Basics - Anfänger-Themen 6
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
F Exceptions Java Basics - Anfänger-Themen 6
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
N Compiler-Fehler Drei Exceptions in GUIHack für Dreiecke auf MoveButtons Java Basics - Anfänger-Themen 36
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
S Exceptions Java Basics - Anfänger-Themen 7
M Vererbung Problem Vererbung/Exceptions Java Basics - Anfänger-Themen 9
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
J Eclipse Exceptions Java Basics - Anfänger-Themen 2
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
K Exceptions auslagern Java Basics - Anfänger-Themen 15
F Erste Schritte Übung zu Exceptions Java Basics - Anfänger-Themen 24

Ähnliche Java Themen

Neue Themen


Oben