Hvis jeg inde i en klasse a i metode b opretter en constructor sådan her.
Form listeForm = (Form) session.getAttribute(listeFormNavn);
Derefter ændrer jeg nogle værdier på min listeForm stadig i samme metode. eks. listeForm.setAntalMeter("9")
Så kalder jeg metode c uden at overføre listeForm. Jeg overfører dog en String (listeFormNavn) og i metode c laver jeg så en ny constructor på samme måde.
Form listeForm = (Form) session.getAttribute(listeFormNavn);
Hvad er det der sker så jeg kan se de ændringer der er sket i listeForm? Jeg sidder med koden og den virker men hvordan virker det?
Lad os først få lidt styr på begreberne : Du opretter ikke en construktor, du opretter en instans af en klasse Form, ved at benytte en constructor, derved opbnår du et object. I dette tilfælde bruger du slet ikke en construktor. Da dit object allerede er oprettet og befinder sig i din session container. Derfor henter du et object ud af din session og caster det til at være et Form object.
Vi er nok som prom siger nød til at se lidt kode, da det som du beskriver det ikke kan lade sig gøre..... Det du henter ud fra din session er uændret, med mindre du da selvfølgelig i metode b laver : session.setAttribute(listeFormNavn, listeForm);
Jeg er ved at sætte mig ind i noget kode og jeg må ikke sætte større mængder kode ind. Detsværre.... Jeg leder selv efter den der session.setAttribute() men kan ikke lige finde den.....
det kasserper siger er essentielt. session.getAttibute er ikke en constructor.
så det du får at lægger i variablen listeForm er blot en reference til det objekt getAttribute fandt til dig. når du retter i det er den det oprindelige objekt du retter i.
og næste gang du bruger getAttribute får du så en ny reference til det samme objekt.
Det vidste jeg ikke man kunne, jeg havde selv gættet på det samme men troede bare ikke det var muligt.
Synes godt om
Ny brugerNybegynder
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.