Avatar billede anadan Nybegynder
10. december 2002 - 14:44 Der er 8 kommentarer og
1 løsning

betydning af transient

Hvad er den præcise definition af det indbyggede keyword "transient"?
Avatar billede mfalck Praktikant
10. december 2002 - 14:50 #1
Transient instance fields are neither saved nor restored by the standard serialisation mechanism. You have to handle restoring them yourself
Avatar billede arne_v Ekspert
10. december 2002 - 15:09 #2
De kommer ikke med, når du serialiserer og
deserialiserer.

Normalt betyder det at det ikke giver mening
at serialisere/deserialisere dem.

Eksempel:
  - hvis din applikation har en åben fil, så giver
    det ikke meget mening at serialisere den fil
    handle, sende det serialiserede til en
    anden server, og der deserialisere og
    forvente at den fil handle kan bruges til noget.

Brug transient til kontekst-afhængige variable, som
ikke giver mening i en anden applikation på
en anden server.
Avatar billede anadan Nybegynder
10. december 2002 - 15:26 #3
Det vil sige at hvis der er variable på et object på den ene side jeg ikke vil sende over, så kan jeg bare gøre dem transient'e?

eks.
public class Account{
  private int number;
  private String customer;
  private transient String pincode;
}
Avatar billede arne_v Ekspert
10. december 2002 - 15:31 #4
Principielt ja.

Men normalt bruges det imidlertid af rent tekniske
årsager (forhindrer variable der ikke giver mening
at flytte at blive flyttet) og ikke til business
logic (forhindre variable der af sikkerheds eller
andre grunde ikke bør flyttes at blive flyttet).
Avatar billede arne_v Ekspert
10. december 2002 - 15:33 #5
Hvis det er for at sikre pin-koden, så vil jeg
anbefale noget lidt mere eksplicit business
logic til at håndtere det.

Ellers så er der en eller anden maintenance
programmør som om et år opdager, at der er en
"fejl" i din klasse og fjerner transient uden
at forstå de problematikken.
Avatar billede disky Nybegynder
10. december 2002 - 15:40 #6
arne:
Det kan man undgå ved at kommentere sin kode :)
Avatar billede anadan Nybegynder
10. december 2002 - 15:43 #7
arne:
Tak for svaret. Eksemplet med pin koden var bare et hurtigt eksempel :-)
Avatar billede arne_v Ekspert
10. december 2002 - 15:51 #8
disky> En passende kommentar vil hjælpe. Men jeg
tror stadigvæk ikke at jeg ville bruge transient
som sikkerheds-mekanisme.
Avatar billede disky Nybegynder
10. december 2002 - 16:02 #9
Det vil jeg så give dig ret i.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester