Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære NullPointerException | Streng
Java Grunnleggende

bookNullPointerException

NPE

NullPointerException eller NPE er en feil alle Java-programmerere kjenner til. Denne feilen har rekorden for å irritere programmerere.

Først skal vi forstå konseptet med null-verdien for en strengvariabel. Når vi oppretter en strengvariabel, men glemmer å initialisere den, får den verdien null. Til sammenligning, hvis vi ikke initialiserer en int-variabel, får den verdien 0.

La oss se på et eksempel med en strengvariabel som har verdien null:

Main.java

Main.java

copy
12345678
package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }

Som du kan se, er utskriften på skjermen null, og koden ser ut til å fungere. Men la oss nå prøve å bruke en metode på en variabel med verdien null:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }

Når du prøver å kalle en metode på en strengvariabel med verdien null, får du en NullPointerException.

Du tror kanskje at denne feilen ikke er så alvorlig, men senere, når du mottar verdier som ikke er skrevet av deg selv, vil du ofte støte på den. Derfor er det viktig å forstå hvordan du løser denne feilen nå.

Måter å unngå NPE på:

  • Vær oppmerksom. Hvis du oppretter en strengvariabel, dobbeltsjekk at du har initialisert den;
  • Bruk en null-sjekk før du bruker variabelen, for eksempel.
Main.java

Main.java

copy
123456789101112
package 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); } } }
Oppgave

Swipe to start coding

Du utvikler et system som behandler ansattes e-poster.
Noen e-postoppføringer kan mangle (null).
Din oppgave er å validere og kun behandle ikke-null og korrekt formaterte e-poster.

  1. Du får et array med ansattes e-poster.
  2. Gå gjennom hver email i arrayet.
  3. For hver oppføring:
    • Sjekk om email er ikke null
    • Og sjekk om den inneholder @-symbolet
  4. Hvis begge betingelsene er oppfylt, skriv ut e-posten til konsollen.
  5. Ellers, skriv ut:
    "Invalid or missing email"

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 5
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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?

close

bookNullPointerException

Sveip for å vise menyen

NPE

NullPointerException eller NPE er en feil alle Java-programmerere kjenner til. Denne feilen har rekorden for å irritere programmerere.

Først skal vi forstå konseptet med null-verdien for en strengvariabel. Når vi oppretter en strengvariabel, men glemmer å initialisere den, får den verdien null. Til sammenligning, hvis vi ikke initialiserer en int-variabel, får den verdien 0.

La oss se på et eksempel med en strengvariabel som har verdien null:

Main.java

Main.java

copy
12345678
package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }

Som du kan se, er utskriften på skjermen null, og koden ser ut til å fungere. Men la oss nå prøve å bruke en metode på en variabel med verdien null:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }

Når du prøver å kalle en metode på en strengvariabel med verdien null, får du en NullPointerException.

Du tror kanskje at denne feilen ikke er så alvorlig, men senere, når du mottar verdier som ikke er skrevet av deg selv, vil du ofte støte på den. Derfor er det viktig å forstå hvordan du løser denne feilen nå.

Måter å unngå NPE på:

  • Vær oppmerksom. Hvis du oppretter en strengvariabel, dobbeltsjekk at du har initialisert den;
  • Bruk en null-sjekk før du bruker variabelen, for eksempel.
Main.java

Main.java

copy
123456789101112
package 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); } } }
Oppgave

Swipe to start coding

Du utvikler et system som behandler ansattes e-poster.
Noen e-postoppføringer kan mangle (null).
Din oppgave er å validere og kun behandle ikke-null og korrekt formaterte e-poster.

  1. Du får et array med ansattes e-poster.
  2. Gå gjennom hver email i arrayet.
  3. For hver oppføring:
    • Sjekk om email er ikke null
    • Og sjekk om den inneholder @-symbolet
  4. Hvis begge betingelsene er oppfylt, skriv ut e-posten til konsollen.
  5. Ellers, skriv ut:
    "Invalid or missing email"

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 5
single

single

some-alt