Hvordan sette Java String til null

I Java-programmering, "null" er et spesielt søke reservert for å referere til en variabel som, samtidig er tilordnet en variabel navn, den trenger ikke å referere til data i minnet. Alle variabler, inkludert strenger, har en verdi på null i tiden mellom deres skapelse, og når de er tildelt en verdi. En verdi på null kan også tildeles ved å skrive: "String s = null." Men i tilfelle av strenger, er det et par ting.

Bruksanvisning

1 Åpne "NetBeans" eller noe annet Java Integrated Development Environment.

2 Klikk "Fil" og "Ny klasse." Name it "StringNullLesson."

3 Skriv "PSVM" for å lage en hovedmetode.

4 Legg til følgende kode til din viktigste metoden:

String t = null;

try {

t.charAt (0);

System.out.println (t + "er ikke null.");

} Catch (NullPointerException e) {

System.out.println ( "t er null.");

}

Dette skaper en streng og eksplisitt tildeler en verdi av null. Den forsøker å få tilgang til det første tegnet i strengen og skrive den ut. Det hele er omgitt av en "try-catch" statement som skal kastes når Java innser at du prøver å gjøre noe med en nullverdi.

5 Klikk på "Run." Du skal se en feilmelding som sier "t er null."

6 Fjern linjen "t.charAt (0);" fra koden. Klikk "Kjør" igjen. Denne gangen vil du se motstridende budskap "null ikke er null." Normalt, når du forsøker å gjøre noe med null, kompilatoren gjenstander og kaster en feil umiddelbart. Men, når Java ser du prøver å behandle null som om det var en streng, det vil gå med på det, og skaper en ny streng som inneholder ordet "null". Et øyeblikks tanke bør gjøre det klart hvorfor dette er: hvis Java krasjet hver gang den prøvde å skrive ut verdien "null", så skriver en feilloggfilen for din søknad ville være nesten umulig: feilloggen selv ville krasje hver gang en nullpeker ble oppdaget. Java antar at hvis du prøver å skrive ut "null", så du prøver å rapportere feil, og det ikke kommer i veien.

7 Legg til følgende kode for å se etter en null String riktig:

if (t == null) kaste nytt NullPointerException ();