NullPointerException bei Hashtable



  • Wie schon dutzende Male zuvor, versuche ich mit dem folgenden Code einen Wert aus einer Hashtable auszulesen:

    String chatID;
    
    // Hier wird chatID ein Wert zugewiesen
    
    System.out.println("chatID: " + chatID); // --> Ausgabe von "chatID: 1" erfolgt!
    
    Chat chat = (Chat) chats.get(chatID); // hier gibt es eine NullPointerException
    
    if (chat != null)
    {
        // ...
    

    Das Problem ist das Auftreten einer NullPointerexception in der oben markierten Zeile, wenn der Schlüssel "chatID" in der Hashtable "chats" noch nicht vorhanden ist. "get()" wirft laut der Sun-Doku aber nur, wenn der übergebene Schlüssel null ist. Das ist aber offensichtlich nicht der Fall, wie die vorhergehende Ausgabe beweist.
    Kann mir jemand sagen was ich falsch mache? Danke.
    (Natürlich kann ich das Problem durch Abfangen der Ausnahme umgehen, aber mich interessiert der Grund für ihre Auslösung.)



  • wenn es da eine NullPointerEx geworfen wird, dann ist wohl chats == null.



  • Boah, ich bin so ein Depp! 🙄 (Als eingefleischter C++ler muss man sich aber auch erst einmal daran gewöhnen, dass man für alle Member erst noch Speicher besorgen muss.)
    Vielen Dank für die Hilfe, in Zukunft denke ich an diesen Umstand hoffentlich durchgehend.


Log in to reply