我正在创建一个保险学校项目,我应该能够创建一个新的客户,添加保险(房子,汽车,船等)并保存到文件。我正在使用
public void skrivTilFil(HashMap hm) {
if ( hm != null ) {
try (ObjectOutputStream utStream =
new ObjectOutputStream(
new FileOutputStream(filename))) {
utStream.writeObject (hm);
问题是我应该能够删除对象(房屋,汽车保险,客户本身等)但我必须有历史和统计搜索,其中对象和删除的对象都显示。
我考虑过保存到两个不同的文件,并从一个文件中删除。含义我删除了一个文件,历史记录和统计搜索有另一个文件。但我绝对不允许双重保存。所以我理解它所以我只能有一个文件因此无法删除对象。
我还考虑过一个布尔值,其中" false
" = show
," true
" = deleted
。然后只显示" show-objects
"而不是" deleted
"必要的时候," false
"和" true
"在搜索历史和统计数据时。
所以我做了这个方法:
public void eraseCustomer( int insurancenr )
{
Iterator<Map.Entry<Integer, Person>> iterator = vindu.register.personTM.entrySet().iterator() ;
while(iterator.hasNext())
{
Map.Entry<Integer, Person> insuranceNrEntry = iterator.next();
if( insurancenr == insuranceNrEntry.getKey())
{
Vindu.setUtskriftsomraadet("Found person " + insuranceNrEntry.getValue() );
JOptionPane.showMessageDialog(null, "arrived at eraseCustomer");
}
运行此代码表明我获得了一个值,例如&#34; Person @ 2936643&#34;。
我需要的是获取person / object的名称(String lastname)并将该personboolean设置为true。
我有一个保险钥匙找到这个人。
所以1:
是否可以使用boolean = true更新该personobject是一种简单的方法,还是我必须创建一个新对象然后用我找到的对象替换它?我只需要更改布尔值,而不是名称,生日等。
2:
如何获取对象的名称而不是Person @ 2936643?
事情是,这是我的知识...你对我如何做到这一点有任何提示或建议,非常感谢!
(我是挪威语,所以请原谅我的英语不好)