Null Pointer Exception

Timmy21

Mitglied
Hallo, da bin ich wieder und finde wieder nach langer Suche den fehler nicht 🙂


Java:
public class Letzteuebung{
  public static class Pkw{
    public String kennzeichen;
    public int tachoJahresanfang;
    public int tachoJahresende;
    public int benzinGesamt;
    public double mittlererVerbrauch;
  }
  
  public static double errechneVerbrauch(int km,int liter){
    return (double) liter/km*100;
  }
  
  
  public static Pkw liesPkw () {
    Pkw auto=new Pkw();
    auto.kennzeichen=Tastatur.liesString("Kennzeichen eingeben");
    auto.tachoJahresanfang=Tastatur.liesInt("Jahresanfang Tacho eingeben");
    auto.tachoJahresende=Tastatur.liesInt("Jahresende Tacho eingeben");
    auto.benzinGesamt=Tastatur.liesInt("Benzin Gesamt eingeben");
    auto.mittlererVerbrauch=errechneVerbrauch(auto.tachoJahresende-auto.tachoJahresanfang,auto.benzinGesamt);
    return auto;
  }
  
  public static void druckePkwTabelle(Pkw [] array){
    System.out.println("Kennzeichen \t Liter/100km");
    for (int h=0;h<=array.length-1;h++)
      System.out.println(array[h].kennzeichen + "\t" + array[h].mittlererVerbrauch);
  }
  
  
  
  
  
  
  public static void main (String[]args){
    
    Pkw []pkwArray=new Pkw [15];
    
    char weiter = 'j';
    
      for (int l=0;l<15;l++)
        while (weiter=='j'){
        
        pkwArray[l]=liesPkw();
      
  
     weiter=Tastatur.liesChar("Weiter? j/n");
    }
  
  druckePkwTabelle(pkwArray);
  int kleinste=0;
  for (int g=1;g<=pkwArray.length-1;g++){
    if (pkwArray[g].mittlererVerbrauch<pkwArray[g-1].mittlererVerbrauch)
      kleinste=g;
  }
System.out.println("Das Auto mit dem Kennzeichen" 
                     + pkwArray[kleinste].kennzeichen + "hat den geringsten Verbrauch");
}
}
 
Das steht im Compiler : java.lang.NullPointerException
at Letzteuebung.druckePkwTabelle(Letzteuebung.java:28)
at Letzteuebung.main(Letzteuebung.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
>
 
wenn du nicht 15 autos erfasst, dann sind einige eben null.

Das Forum hat auch eine Edit funktion.
 
Zuletzt bearbeitet von einem Moderator:
Ich nehme mal an, du hast nicht alle 15 Pkws erstellt.
Du schreibst mit
Java:
Pkw[] pkwArray = new Pkw[15];
vor, dass es immer 15 Pkws gibt, wobei das Array mit null initialisiert wird.
Wenn du dann aber nicht alle erstellst, dann über das Array läufst
Java:
for (int h = 0; h <= array.length - 1; h++)
			System.out.println(array[h].kennzeichen + "\t" + array[h].mittlererVerbrauch);
kommt es dazu, dass du auf null versuchst Variablen zu verändern.
 

Neue Themen


Zurück
Oben