ID du générateur pour les Objets créés
J'ai besoin d'une classe qui crée des Objets attribuer un ID à chaque Objet créé. Cet ID est comme d'habitude un int attribut de la classe. Je veux cette valeur (ID) augmentée chaque fois qu'un Objet est créé et ensuite être affectées à cet Objet, en commençant par 1. Il me semble que j'ai besoin d'un static int attribut.
Comment puis-je initialiser cet attribut static?
Dois-je créer une méthode pour faire de l'incrément de l'ID (ID generator) qui est appelée dans le constructeur?
Ce qui est en général plus efficace et bien conçu de manière à la mettre en œuvre?
Juste un commentaire: Si vous êtes dans un serveur en cluster environnement de cette approche ne fonctionnera pas.
OriginalL'auteur arjacsoh | 2011-10-05
Vous devez vous connecter pour publier un commentaire.
Comme vous le mentionnez utiliser un
static int
pour l'id, et l'incrémenter lors de la création de nouveaux objets.Veuillez noter que vous avez besoin pour protéger
counter++
siMyObject
est créé par plusieurs threads (par exemple à l'aide deAtomicInteger
que les autres réponses suggèrent).Dépend de votre scénario, j'aurais toutefois préféré id à 0. 🙂
OriginalL'auteur dacwe
Vous pouvez également essayer de java.util.de façon concomitante.AtomicInteger, ce qui génère des Identifiants
Vous pouvez l'utiliser dans un contexte statique comme:
OriginalL'auteur Andreas
Je suggère d'utiliser
AtomicInteger
, qui est thread-safeOriginalL'auteur barmaley