Avatar billede mercutio Nybegynder
04. juli 2002 - 07:52 Der er 8 kommentarer

Spørgsmål angående en constructor.

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?
Avatar billede prom Nybegynder
04. juli 2002 - 09:19 #1
Lad os få lidt kode..

prom
Avatar billede kasseper Nybegynder
04. juli 2002 - 09:35 #2
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);
Avatar billede mercutio Nybegynder
04. juli 2002 - 09:49 #3
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.....
Avatar billede disky Nybegynder
04. juli 2002 - 09:54 #4
mercutio:
Du finder dokumentation om setAttribute() i J2EE api'en
Avatar billede kasseper Nybegynder
04. juli 2002 - 09:56 #5
Så blir det nok svært...!
Avatar billede jakoba Nybegynder
04. juli 2002 - 10:18 #6
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.

mvh JakobA
Avatar billede kasseper Nybegynder
04. juli 2002 - 10:34 #7
skulle det ikke ha været et svar ?
Avatar billede mercutio Nybegynder
04. juli 2002 - 10:54 #8
Det vidste jeg ikke man kunne, jeg havde selv gættet på det samme men troede bare ikke det var muligt.
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