# automatische laufende Nummer erzeugen



## Mehadorz (25. Aug 2011)

Hallo zusammen,

irgendwie stehe ich auf den Schlauch, ich möchte für jedes Objekt automatisch eine laufende Nummer vergeben.

Bei meinen bisherigen Lösungsansätzen wird immer die gleiche Nummer vergeben, entweder bleibt er bei 1 stehen oder es immer die letzte Nummer, wenn ich die Zahl als static deklariere.

Hat jemand eine Idee?


----------



## Fu3L (25. Aug 2011)

```
public class Counter {
  static int number = 0;
  int id;
  public Counter() {
      number++;
      id = number;
  }
}
```

Müsste klappen. ID ist die fortlaufende Nummer. Number die Gesamtzahl der Objekte.


----------



## Mehadorz (25. Aug 2011)

Danke, funzt.

Gibt es noch eine Möglichkeit ohne static??? Wohl eher nicht, oder?


----------



## Fu3L (25. Aug 2011)

Wenn du nicht eine äußere Klasse hast, die ausnahmslos alle Instanzen dieser Objekte erzeugt oder so ähnlich, nicht^^


----------



## Mehadorz (25. Aug 2011)

ne, hab ich nicht.

Danke Dir für die schnelle Hilfe.


----------



## Volvagia (25. Aug 2011)

Denk aber daran dieses Programmteil zu synchronisieren. Dazu brauchst du eine (statische) Methode oder eine Konstante auf die du Locken kannst.

Statisch ist nicht unbedingt notwendig, aber man schreibt von einer Instanzmethode normal nicht in eine statische Variable.


----------



## Fu3L (25. Aug 2011)

Volvagia hat gesagt.:


> Denk aber daran dieses Programmteil zu synchronisieren



, sofern du mit mehreren Threads arbeitest^^


----------



## diggaa1984 (26. Aug 2011)

man könnte ja auch AtomicInteger verwenden


----------



## Andi_CH (26. Aug 2011)

... was hindert mich daran mehrere Counter zu instanzieren?
Da währe jetzt aber defintiv ein Singleton (ja ich weiss. Das ist eine Religionsfrage) o.ä. angebracht.


----------



## Fu3L (26. Aug 2011)

Andi_CH hat gesagt.:


> ... was hindert mich daran mehrere Counter zu instanzieren?
> Da währe jetzt aber defintiv ein Singleton (ja ich weiss. Das ist eine Religionsfrage) o.ä. angebracht.



Es ist doch gerade der Sinn mehrere Counter zu instanzieren^^ Es soll ja für jedes neue Objekt die Nummer um eins erhöht werden^^
(Vllt hab ich den Namen Counter ungünstig gewählt, aber es soll ja irgendwas gezählt werden, nämlich die Anzahl der Instanzen dieser Klasse)


----------



## Andi_CH (26. Aug 2011)

Aehm  mea culpa - das tut es ja. Code lesen ist bei der Hitze nicht meine Stärke.


----------

