Если я добавлю объект в ArrayList в Java, я добавлю ссылку на него, правильно? Так что возьмите эту ситуацию. Я создаю объект с именем obj и устанавливаю его в значение. Затем я зациклирую определенное количество раз, и каждый раз, когда я немного изменяю obj (например, изменяю его положение), а затем добавляю его в ArrayList. После каждой последовательности цикла я возвращаю obj к значению по умолчанию, поэтому следующая последовательность будет иметь новый obj для изменения. Предполагая, что я все время передавал ссылки obj, все в ArrayList также будет установлено значение по умолчанию? Из тестирования я вижу, что значения не меняются и все разные, что я считаю странным. Может ли кто-нибудь уточнить?Как работают элементы в ArrayList?
Block b = block.clone();
for(int x = 0; x < amountX; x++){
Vector3f offset = new Vector3f(0, 0, 0);
offset.x = x * block.getScale().x;
for(int y = 0; y < amountY; y++){
offset.y = y * block.getScale().y;
for(int z = 0; z < amountZ; z++){
offset.z = z * block.getScale().z;
b.move(offset);
addBlocks(b);
b = block.clone();
}
}
}
for(Block a : blocks)
System.out.println(a.getPosition());
addBlocks добавляет блок в ArrayList. Последний цикл печатает все разные позиции. Block.clone() просто создает новый блок с теми же параметрами.
Много текста с несколькими кодами. Можете ли вы поделиться кодом, с которым работаете? –
Мы ненавидим читать текст :) Покажите нам код для объекта реселлера по умолчанию. – MariuszS