Ваша проблема связана с типом static
, который требует новой инициализации каждый раз, когда цикл повторяется. Если вы находитесь в цикле, лучше сохранить конкретную инициализацию внутри цикла.
List<Object> objects = new ArrayList<>();
for (int i = 0; i < length_you_want; i++) {
SomeStaticClass myStaticObject = new SomeStaticClass();
myStaticObject.tag = i;
// Do stuff with myStaticObject
objects.add(myStaticClass);
}
Вместо:
List<Object> objects = new ArrayList<>();
SomeStaticClass myStaticObject = new SomeStaticClass();
for (int i = 0; i < length; i++) {
myStaticObject.tag = i;
// Do stuff with myStaticObject
objects.add(myStaticClass);
// This will duplicate the last item "length" times
}
Здесь tag
является переменной в SomeStaticClass
проверить правильность приведенного выше фрагмента; у вас может быть другая реализация, основанная на вашем случае использования.
Если вы сомневаетесь, обратитесь к дзен питона . Если он читабелен, легок для понимания и выполняет работу правильно , значит, у вас все хорошо.
Сказав, что посмотрите здесь и здесь , чтобы увидеть аналогичные вопросы о том, как работает time.sleep. Вы можете передумать в зависимости от того, насколько точным вам нужен цикл сна
.