オブジェクトを削除しようとしているベクトルがあります。メソッドは以下に記載されています(およびそれが削除されたことを確認するためのチェックも)。その中で、ベクターが格納される場所を定義する getVector メソッドと、ベクター内のオブジェクトを返す findItem を呼び出します。オブジェクトをベクターに追加し、ベクター内のオブジェクトを表示できるため、getVector と findItem が正しく機能することはわかっています。
public Message removeMember (Message m)
//list is the vector location
//item is the object in the vector i am looking to remove
{
list = getVector(m);
item = findItem(list, m);
if (item != null) // if item exists in the vector (code enters this statement)
{
System.out.println("removing " + item.name + " from file");
list.remove(item); // remove the item from the vector
// search for item to insure it is removed
item = findItem(list, m);
if (item == null) // if item has been removed
{
System.out.println(m.name + " removed from file.");
m.response = m.name + " removed from file.";
}
else //if the item has not been removed
{
System.out.println("Error removing member from file.");
m.response = "Error removing member from file.";
}
}
else // item does not exist in vector at all
{
m.response = m.name + " was previously removed or never existed.";
}
return m;
}
私が経験している問題は、アイテムが削除されていることを確認するためにチェックを行っても、プログラムがそのチェックに入り、 System.out.println(m.name + "ファイルから削除されました。") がコンソールで検証されることです。エントリが削除されたことを確認しても、(プログラムを介して) 検索することはできます。ベクターの場所を開いてテキスト ファイルを参照すると、情報がまだファイル内にあることがわかります。
よろしくお願いします。