Je travaille sur un jeu vidéo avec un ami. Pour prendre en compte les différents types d'objets, nous avions à l'origine une classe pour chaque objet étendant une classe Item. Comme il n'y avait pas beaucoup de données dans ces classes, j'ai cherché une alternative pour que notre espace de travail ne soit pas si encombré. J'ai commencé à me renseigner sur les HashMaps, et j'ai pensé que c'était un moyen génial d'ajouter des éléments. Nous pouvions également les configurer de telle sorte qu'au lieu d'accéder aux éléments du HashMap avec un int, ce qui en ferait simplement une ArrayList, nous pouvions y accéder avec des Strings. J'ai donc commencé à ajouter cette fonctionnalité, en créant des éléments anonymes dans la classe Item,
private static Item coal = new Item() {
weight = .2;
setImageID(0, 16);
}
et les ajouter au HashMap.
itemMap.put("Coal", coal);
Après en avoir fait quelques-uns, j'ai réalisé qu'il n'y avait qu'un seul article de chaque type dans la liste, et que si nous voulions un jour avoir des multiples de ces articles qui pourraient être modifiés sans modifier l'original, nous devrions faire des copies. J'ai commencé à faire des recherches sur la façon de le faire. Nous pourrions utiliser un constructeur de copie, mais il y a trop de variables dans un élément pour que cela soit efficace. Nous pourrions certainement le faire, mais je me demandais s'il y avait une solution simple. Pourrions-nous rendre tous les éléments finaux ? Je ne fais que lancer des idées, car je suis totalement novice dans ce domaine de la programmation. Il se peut aussi que nous fassions tout cela de travers. J'ai juste besoin d'un moyen d'utiliser un HashMap pour créer une sorte de "base de données d'éléments" que je peux utiliser pour accéder à une quantité indéfinie d'un élément de la liste. Des suggestions ?