NullPointerException
NPE
NullPointerException eli NPE on virhe, jonka jokainen Java-ohjelmoija tuntee. Tämä virhe on tunnettu ohjelmoijien ärsyttämisestä.
Ensiksi tarkastellaan null-arvon käsitettä merkkijonon muuttujalle. Kun luodaan merkkijonon muuttuja, mutta unohdetaan alustaa se, se saa arvokseen null.
Vertailun vuoksi, jos int-muuttujaa ei alusteta, se saa arvon 0.
Tarkastellaan esimerkkiä merkkijonon muuttujasta, jonka arvo on null:
Main.java
12345678package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }
Kuten huomaat, näytölle tulostuu null ja koodi näyttää toimivan. Kokeillaanpa nyt käyttää mitä tahansa metodia muuttujalla, jonka arvo on null:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }
Kun yritetään kutsua mitä tahansa metodia merkkijonon muuttujalle, jonka arvo on null, saadaan NullPointerException.
Saatat ajatella, ettei tämä virhe ole kovin vakava, mutta myöhemmin, kun saat arvoja, joita et ole itse kirjoittanut, kohtaat sen usein. Siksi on tärkeää ymmärtää, miten tämä virhe ratkaistaan jo nyt.
Tapoja välttää NPE:
- Ole huolellinen. Jos luot merkkijonon muuttujan, tarkista kahdesti, oletko alustanut sen;
- Käytä null-tarkistusta ennen muuttujan käyttöä, esimerkiksi.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String string = null; if (string == null) { // null check System.out.println("Can't use methods with string, because value is null"); } else { System.out.println(string); } } }
Swipe to start coding
Kehität järjestelmää, joka käsittelee työntekijöiden sähköpostiosoitteita.
Jotkin sähköpostiosoitteet saattavat puuttua (null).
Tehtävänäsi on tarkistaa ja käsitellä vain ei-null ja oikein muotoillut sähköpostiosoitteet.
- Sinulle annetaan taulukko työntekijöiden sähköpostiosoitteita.
- Käy läpi jokainen
emailtaulukossa. - Jokaiselle riville:
- Tarkista, että
emailei olenull - Ja tarkista, että siinä on
@-merkki
- Tarkista, että
- Jos molemmat ehdot täyttyvät, tulosta sähköpostiosoite konsoliin.
- Muussa tapauksessa tulosta:
"Invalid or missing email"
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you show me an example of how to check for null before using a variable?
What are some other common causes of NullPointerException in Java?
Can you explain the difference between null and an empty string in Java?
Mahtavaa!
Completion arvosana parantunut arvoon 2.7
NullPointerException
Pyyhkäise näyttääksesi valikon
NPE
NullPointerException eli NPE on virhe, jonka jokainen Java-ohjelmoija tuntee. Tämä virhe on tunnettu ohjelmoijien ärsyttämisestä.
Ensiksi tarkastellaan null-arvon käsitettä merkkijonon muuttujalle. Kun luodaan merkkijonon muuttuja, mutta unohdetaan alustaa se, se saa arvokseen null.
Vertailun vuoksi, jos int-muuttujaa ei alusteta, se saa arvon 0.
Tarkastellaan esimerkkiä merkkijonon muuttujasta, jonka arvo on null:
Main.java
12345678package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }
Kuten huomaat, näytölle tulostuu null ja koodi näyttää toimivan. Kokeillaanpa nyt käyttää mitä tahansa metodia muuttujalla, jonka arvo on null:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }
Kun yritetään kutsua mitä tahansa metodia merkkijonon muuttujalle, jonka arvo on null, saadaan NullPointerException.
Saatat ajatella, ettei tämä virhe ole kovin vakava, mutta myöhemmin, kun saat arvoja, joita et ole itse kirjoittanut, kohtaat sen usein. Siksi on tärkeää ymmärtää, miten tämä virhe ratkaistaan jo nyt.
Tapoja välttää NPE:
- Ole huolellinen. Jos luot merkkijonon muuttujan, tarkista kahdesti, oletko alustanut sen;
- Käytä null-tarkistusta ennen muuttujan käyttöä, esimerkiksi.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String string = null; if (string == null) { // null check System.out.println("Can't use methods with string, because value is null"); } else { System.out.println(string); } } }
Swipe to start coding
Kehität järjestelmää, joka käsittelee työntekijöiden sähköpostiosoitteita.
Jotkin sähköpostiosoitteet saattavat puuttua (null).
Tehtävänäsi on tarkistaa ja käsitellä vain ei-null ja oikein muotoillut sähköpostiosoitteet.
- Sinulle annetaan taulukko työntekijöiden sähköpostiosoitteita.
- Käy läpi jokainen
emailtaulukossa. - Jokaiselle riville:
- Tarkista, että
emailei olenull - Ja tarkista, että siinä on
@-merkki
- Tarkista, että
- Jos molemmat ehdot täyttyvät, tulosta sähköpostiosoite konsoliin.
- Muussa tapauksessa tulosta:
"Invalid or missing email"
Ratkaisu
Kiitos palautteestasi!
single