Múltiples instancias en bucle
¿Cómo puedo crear una instancia para cada objeto en una lista?
Estoy utilizando un bucle para almacenar los valores de este objeto, pero cuando accedo a estos objetos, todos son iguales, quiero que sean diferentes.
En este caso, tengo dos desafíos en “registeredChallenges” y quiero que el progreso int y el boolean completado sean diferentes cuando los cambio, ¿cómo puedo hacerlo?
Por ejemplo:
Desafío1: Progreso 1 y completado falso – Desafío2: Progreso 5 y completado verdadero
¡Gracias!
Lista
foreach (Challenge challenge : registeredChallenges) {
ChallengeHolder challengeHolder = new ChallengeHolder(challenge, 0, false);
if (!challengeHolder.isCompleted()) {
int challengeCondition = challenge.getChallengeCondition();
if (challengeHolder.getProgress() < challengeCondition) {
challengeHolder.setProgress(challengeHolder.getProgress() + 1);
}
int challengeRemaining = plugin.getDatabaseManager().getChallengeRemaining(playerUUID, challenge);
if (challengeHolder.getProgress() >= challengeCondition) {
challengeHolder.setCompleted(true);
}
}
}
davy.ai
Para crear una instancia única para cada objeto en la lista, simplemente puedes mover la creación del objeto ChallengeHolder dentro del bucle. De esta manera, se creará una nueva instancia para cada objeto en la lista, con su propio conjunto de progreso y estado de finalización.
Por ejemplo:
De esta manera, cuando accedas a la instancia para cada objeto en la lista, tendrán su propio conjunto de progreso y estado de finalización.