ObjectOutputStream

7 отговора 387 прегледа
#1

ObjectOutputStream

привет
ситуацията е следната :
пращам аз обекти през oos, а на другия край се получава 1 и също ...

ObjectOutputStream oos .....
obj.setValue1("test");
oos.writeObject(obj);
oos.flush();
obj.setValue1("test1");
oos.writeObject(dr);
oos.flush();

И в двата случая на другия край с
ObjectInputStream --> obj.getValue1() ,
получавам "test". ...и по принцип каквото и да сетвам,
накрая винаги излиза първата сетната стойност.
оправя се само, ако всеки път създава нов обект obj , но това някак не ми се вижда да е начинът ...

Редактирано от lLlN на

Отговор
в отговор на lLlN #2

Re: ObjectOutputStream

От къде се взе това dr?

ObjectOutputStream oos .....
obj.setValue1("test");
oos.writeObject(obj);
oos.flush();
obj.setValue1("test1");
oos.writeObject(dr);
oos.flush();

Отговор
в отговор на lLlN #3

Re: ObjectOutputStream

...
oos.flush();
oos.reset();
... навсякъде.

идеята е че ти дори и да си го променил Инпута си мисли че му пращаш същия обект и въобще не си прави труда да получи променения. Това е и причината че като създадеш нов, нещата се оправят.

уесно нема

Редактирано от идEoт на

Отговор
в отговор на идEoт #4

Re: ObjectOutputStream

Благодаря!
вече работи така, като си го представях в началото

Отговор
в отговор на Пeчkин #5

Re: ObjectOutputStream

dr=obj
правописна грешка

Отговор
в отговор на lLlN #6

Re: ObjectOutputStream

Без да съм сигурен, според мен проблема е, че не си override-нала equals/hashCode двойката.

Отговор
в отговор на lngon #7

Re: ObjectOutputStream

И аз мисля че по-доброто решение е да се override-не equals/hashCode
reset трансферира информация по sream-а и изтрива кешовете. Може да се окаже че това е по-бавно отколкото създаването на нов обект. За конкретния пример с този малък обект със сигурност е по-бавно.

Отговор
в отговор на antijb #8

Re: ObjectOutputStream

пак благодаря
ще опитам и така ...

Отговор