学校の割り当てには、連絡先をファイルに保存し、ツリーマップを使用してファイル内のすべての連絡先を一覧表示するオプションをユーザーに与えるプログラムを作成する必要があります。私はマップ内の連絡先をファイルに保存し、そこから読み取るコードを書いたが、コンパイル時にエラーが発生する:「互換性のないタイプ:オブジェクトはContactInfoに変換できません」ContactInfo ci = contact.getValue();
これを修正しますか?ファイルからツリーマップを読み込む(Java)?
マップに連絡先を追加し、ファイルにマップを書き込むために、関連するコード:
ContactInfo c = new ContactInfo();
System.out.print("First name: ");
String fName = s.next();
System.out.print("Last name: ");
String lName = s.next();
c.setName(fName, lName);
System.out.print("Phone #: ");
String p = s.next();
c.setPhone(p);
System.out.print("Email address: ");
String e = s.next();
c.setEmail(e);
contacts.put(lName, c);
try
{
ObjectOutputStream out = new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream(fileName)));
out.writeObject(contacts);
}
catch(Exception ex)
{
System.out.println("Error saving contact to file.");
}
すべての連絡先を一覧表示するには、関連するコード:
try
{
ObjectInputStream in = new ObjectInputStream(
new BufferedInputStream(
new FileInputStream(fileName)));
contacts = (TreeMap< String, ContactInfo >) in.readObject();
in.close();
}
catch(Exception exc)
{
System.out.println("Error displaying contacts.");
}
for(Map.Entry contact : contacts.entrySet())
{
ContactInfo ci = contact.getValue();
System.out.println(ci.getName() + "\t" + ci.getPhone() + "\t" + ci.getEmail());
}
あなたのContactInfoはSerializableを実装しますか? – rayen