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を改革しています。 –
デバッグはあなたの友人です! –