Я пишу большую программу, которая включает в себя объект под названием Player
. Определение игрока заключается в следующем:Java - Удаление объекта из массива объектов
public class Player
{
public static String name;
public static Item inventory[] = new Item[10];
public static int items;
/* ... */
public void addItem(String itemName, int itemType)
{
if ((items + 1) <= 10) {
inventory[items] = new Item(itemName, itemType);
items++;
}
}
public void removeItem(int x)
{
for (int i = x; i < items; i++)
inventory[i] = inventory[i+1];
}
}
Я добавляю обработку инвентаря теперь, потому что это гораздо проще, чем добавить его позже, но inventory
не будет не будет использоваться гораздо позже в процессе развития. У меня нет способа узнать, работает ли removeItem
. Я изменил функцию, которую я написал, назвал strstrip
, чтобы получить это ... Будет ли removeItem
работать? Если нет, то почему?
Если вы собираетесь удалить материал, такие вещи, как Списки, будут более подходящими. Как правило, ArrayList. Тем не менее, 'removeItem' не будет работать, он вылетает, но вы знаете, что если вы его протестировали. Кроме того, вы можете узнать, что означает 'static' – njzk2
* У меня нет способа узнать, работает ли removeItem *: обязательно. Добавьте элементы, затем удалите их, а затем посмотрите, что инвентарь содержит то, что он должен содержать. Тем не менее, вы изобретаете ArrayList. –
Отладка - ваш друг! –