Gå til innhold

Hjelp med new String[0]


Anbefalte innlegg

Hei

Jeg har sett i flere kode eksempler at man ofte bruker new String[0], eller lignende.

Jeg kan ikke helt skjønne hva dette gjør. Betyr det at man oppretter en String array som er 0 elementer lang? Hva er i så fall hensikten med dette?

 

Håper noen har et godt svar på dette.

Lenke til kommentar
Videoannonse
Annonse

new Object[0] blir ofte brukt for aa representere null-array. En grunn til dette er at man behoever ikke aa behandle null-array ekstra ved iterasjon:

 

= new String[0]

private String[] values = new String[0];

...

public void doStuff() {
    for (int i = 0; i < values.length; ++i) {
         processValues(values[i]);
    }
}

= null

private String[] values;

...

public void doStuff() {
    if (values != null) {
         for (int i = 0; i < values.length; ++i) {
              processValues(values[i]);
         }
    }
}

 

Poenget er at en array med lengde 0 kan i nesten alle tilfeller representere null objekt eller ingenting. Man sparer seg en sjekk etter null, og koden ser ryddigere ut.

 

Edit:

Tom mengde og null betyr i de fleste tilfeller det samme og maa behandles likt, man slipper aa sjekke for begge hvis man initialiserer med new String[0]. Man har da en og bare en representasjon for null mengde, som er etter min mening ryddigere kode.

 

public void doStuff() {
    // Ikke saa elegant
    if (values == null || values.length == 0) {
         System.out.println("No values defined");
    }
}

Endret av Patton
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...