NullPointer bei if anweisung

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ich habe eine Klasse in NetBeans, die u.a. Temperaturdaten (temp1) an eine MySQL Datenbank sendet. Ist kein Temperatursensor vorhanden, so wird 0 angezeigt. Dies führt zu Problemen, da 0 sowohl "kein Sensor vorhanden" als auch "0°C" heißen könnte. Deshalb möchte ich diesen Fall mit einer if-Anweisung ausschließen, indem geprüft wird, ob ein Sensor vorhanden ist oder nicht und entsprechend 0 oder "null" schreiben. Dabei bekomme ich jedoch eine NullPointerException:

Code:
mainLoop(): java.lang.NullPointerException
java.lang.NullPointerException
        at etws.MySQL.savedata(MySQL.java:19)
        at etws.ETWS.mainLoop(ETWS.java:422)
        at etws.ETWS.main(ETWS.java:560)


Code:
package etws;
import java.sql.*;



public class MySQL{

private static Prefs prefs;
private static String temp1, temp2, taupunkt, wrichtung, wgeschw, baro, hum, regen;

public static void savedata( WeatherCruncher cruncher )
    {
    
    temp1 = "null";
    if (prefs.isTemp1DeviceAvailable()) {temp1 = cruncher.temp1Str;}
    
    System.out.println("Schreibe Daten in MySQL Datenbank");

    String treiber=null, DbUrl=null ;
    treiber = "com.mysql.jdbc.Driver" ;
    DbUrl = "jdbc:mysql://localhost:3306/wetterstation" ;

     try {

         //*** Treiber laden ***********************************
         Class.forName( treiber ).newInstance();
          //*** Verbindung aufnehmen:    ************************
          //*** Der User peter mit Kennwort mysql möcht was wissen
         Connection cn = DriverManager.getConnection( DbUrl, "root", "root" );
         PreparedStatement pstmt = cn.prepareStatement("INSERT INTO wetterdaten " +
                 "(datum, temp1, temp2, taupunkt, wrichtung, wgeschw, baro, hum, regen)" +
                 "VALUES (now(),"+ temp1 + "," + cruncher.temp2Str+ "," +
                 cruncher.dpStr + "," + cruncher.windDirection + "," +
                 cruncher.windSpdStr + "," + cruncher.pressStr + "," + cruncher.humStr +
                 "," + cruncher.rainStr + ")");

          
         pstmt.executeUpdate();
        cn.close();
        } catch( Exception ex ) {   System.out.println( ex );   }
   }

}
 

Ebenius

Top Contributor
Die Variable prefs wird nirgends initialisiert. Sie ist null. Und daher kann man darüber auch keine Methoden aufrufen. Das ist natürlich schwer zu verstehen, wenn man selbst alles static schreibt. ;-)
 

hdi

Top Contributor
Man sollte mal eine Liste erstellen mit den gängigsten Compile-Fehlern und einer Erklärung

cannot find symbol
outoufbounds
null-pointer

... diese Dinge kommen immer und immer wieder. Wär was für den FAQ Bereich!

Kann ja mal jemand machen der sich mit der JVM auskennt und das auch korrekt erklären kann.
 
G

Guest

Gast
Oh, dachte ich hab das schon ausprobiert. Lösung:
Code:
 prefs = ETWS.prefs;

Trotzdem neue Frage:
Ich hab folgende Funktion in der Klasse WeatherStation:
Code:
public void initDevices() {
    System.out.println("InitDevices");

    // temperature device
    if (prefs.isTemp1DeviceAvailable()) {
      temp1Device = new OneWireContainer10(adapter, prefs.getTemp1Sensor());

      if (temp1Device == null) {
        Logger.log("No DS1820 Temperature1 Sensor found - Disabling Device");
      }
    } else {
      System.out.println("Invalid or No Temp1 Device Specified");
    }

Wie kann ich nun aus der Klasse MySQL herraus prüfen, ob
Code:
temp1Device == null
 

Ebenius

Top Contributor
Das verstehe ich überhaupt nicht. Die Bedingung in Zeile 9 ist immer false. Ein Konstruktur (Zeile 7) liefert immer einen Wert der nicht null ist.

Nur für Pädanten: Die einzige Ausnahme, dass ein anderer Thread die Variable zwischen Zeile 7 und 9 auf null setzen würde, schließe ich hier mal aus.
 
G

Guest

Gast
Sorry
drüber steht noch
Code:
private OneWireContainer10 temp1Device = null;
 

Ebenius

Top Contributor
Denk nochmal darüber nach!

Code:
// Hier wird der Variablen temp1Device ein Wert zugewiesen der nie null ist!
temp1Device = new OneWireContainer10(adapter, prefs.getTemp1Sensor());

// Hier wird direkt danach geprüft, ob die Variable nicht vielleicht doch null ist?
if (temp1Device == null) {

Hast Du Angst, dass sich die Maschine ab und an irrt und die erste Zeile vergisst auszuführen? ;-)
 

hdi

Top Contributor
In der nächsten Version von Java soll es auch eine neue if-Konstruktion geben, die solche lästigen Abfragen ablöst:

Code:
int i = 5
if ( i == 5 && word? ){
          ...
}

:bae:
 
G

Guest

Gast
Mal andersrum:
Wenn ich die Meldung "No DS1820 Temperature1 Sensor found - Disabling Device" bekomme, wenn kein Sensor eingesteckt ist, ist das doch der Beweis dafür, dass es eben doch null sein kann?!
 

Ebenius

Top Contributor
Füge mal vor die "if"-Zeile das da ein:
Code:
try {
  temp1Device.toString();
} catch (NullPointerException ex) {
  ex.printStackTrace();
}

Kommt jemals die NullPointerException? Und kommt jetzt noch "No DS1820 ......"?
 
G

Guest

Gast
Okay, du hattest recht, die Fehlermeldung die ich gelesen habe hieß nur so ähnlich. Hab ich verwechselt.
Trotzdem komme ich mit meinem Problem nicht weiter.
Wie kann ich denn jetzt aus der MySQL Klasse herraus prüfen, ob temp1Device.isPresent() aus der Klasse WeatherStation -> getTemperature1 wahr ist? Weiß leider auch nicht was ihr für code benötigt, um diese Aufgabe lösen zu können. Deshalb habe ich mal das gesamte Programm angehängt, würde mich freuen wenn sich einer erbarmt. Schwer ist es bestimmt nicht - wenn man weiß wie...
Und bevor jetzt ein "wenn du keine Ahnung hast, warum machst du nicht einfachere Sachen" kommt: Ich muss das für die Schule machen (sozusagen eine selbstauferlegte Pflicht). Das Programm stammt im Original auch nicht von mir.

Also, wäre super wenn sichs mal wer anschaun könnte:
http://uploaded.to/?id=rl1h0a
 
Status
Nicht offen für weitere Antworten.
Ä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
R NullPointer Exceptions 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
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
T If anweisung Java Basics - Anfänger-Themen 5
C Scanner und If-Anweisung in Kombi Java Basics - Anfänger-Themen 3
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
R Wie würde hier die if-Anweisung aussehen? Java Basics - Anfänger-Themen 18
B break Anweisung Java Basics - Anfänger-Themen 13
C Wie kann ich einen User Input mit einer If-Anweisung verbinden? Java Basics - Anfänger-Themen 5
T Not a Statement/Illegal Start of expression bei for Anweisung Java Basics - Anfänger-Themen 6
H Cäsar chiffrierung ohne if-Anweisung Java Basics - Anfänger-Themen 5
D kann man vor dem CSVRecord, replace Anweisung anwenden ? Java Basics - Anfänger-Themen 2
B Erste Schritte if Anweisung mit Wert Übernahme Java Basics - Anfänger-Themen 3
C Anweisung Java Basics - Anfänger-Themen 11
C HashMap - alle keys haben values der letzten put-Anweisung Java Basics - Anfänger-Themen 3
W Warum funktioniert meine if Anweisung nicht? Java Basics - Anfänger-Themen 8
K if Anweisung Java Basics - Anfänger-Themen 3
W Erste Schritte Warum funktioniert mein Programm nicht ? ~if Anweisung~ Java Basics - Anfänger-Themen 4
V Erste Schritte Warum geht meine continue Anweisung nicht? Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert [SQL] SQL als Anweisung mit Spezial-Fall EclipseEclipse Java Basics - Anfänger-Themen 8
J If Anweisung in Schleife einbinden Java Basics - Anfänger-Themen 7
JavaNewbie2.0 Zur Anweisung zurück Java Basics - Anfänger-Themen 13
J Erste Schritte Vorsicht Spaghetti-Code! Wie verschachtel ich meine If-Anweisung??? Java Basics - Anfänger-Themen 4
L if-Anweisung Java Basics - Anfänger-Themen 5
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
Q Variablen If Anweisung, kleiner fehler Java Basics - Anfänger-Themen 8
M Probleme mit Anzeigen von String in GUI und if-Anweisung Java Basics - Anfänger-Themen 9
L If Anweisung mit ArrayList Probleme Java Basics - Anfänger-Themen 6
OlafHD String in einer If-Anweisung Vergleichen Java Basics - Anfänger-Themen 2
N Rekursion mit if-Anweisung Java Basics - Anfänger-Themen 10
P if anweisung Java Basics - Anfänger-Themen 8
L Frage zur while Anweisung Java Basics - Anfänger-Themen 10
F Return-Anweisung Java Basics - Anfänger-Themen 2
B If-anweisung per ja eingabe. Java Basics - Anfänger-Themen 2
C Variablen if Anweisung falsch gesetzt Java Basics - Anfänger-Themen 4
1 Bei if-Anweisung: Syntax error on token Java Basics - Anfänger-Themen 5
A for-Schleife, if-Anweisung Java Basics - Anfänger-Themen 4
A if - Anweisung Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben