Gå til innhold

Klasse som får unik id for hver instance


Anbefalte innlegg

Skrevet

La oss si vi har en klasse Class med field int ID. Hvordan kan jeg lage et objekt som automatisk øker den IDen hver gang jeg lager en instance av objektet?

 

Feks at første instance får ID 0, neste instance får ID 1 uten at jeg må spesifisere hver enkelt ID når jeg oppretter instances i klientprogrammet.

 

:)

Videoannonse
Annonse
Skrevet

Tjaa..

 

Kan bruke en static variabel for å holde styr på maks id så langt:

 

class MyClass{

private static int total_max_id = -1;

int id;

 

...

 

MyClass() {

this.id = total_max_id++;

}

...

}

 

Evt hvis instansene skal lagres i en datastruktur med size(), som f.eks ArrayList:

 

class MyClass{

int id;

 

...

 

MyClass(ArrayList<MyClass> my_storage) {

this.id = my_storage.size();

my_storage.add(this);

}

...

}

Skrevet

Må vel også muligens gjøre det thread-safe?

Noe sånt, kanskje?

class MyClass {

  private static int objCount = 0;

  private static synchronized int getNextID() {
    return objCount++;
  }

  int id;

...

  MyClass() {
    this.id = getNextID();
  }

...

}
  • 3 uker senere...

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...