Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 2027
Hei, jeg er rimelig "fersk" når det kommer til Java programmering, og har støtt på et problem. For å holde koden min mest mulig dynamisk og gjennbrukbar, så har jeg behov for å sende en instanse av en klasse til en method'e uten å vite hvilken type klasse det er snakk om i compile time.

La meg forklare litt nærmere, jeg har altså 2 eller flere klasser som er extended fra klassen "Parent", slik som vist på bildet under:



Parent klassen inneholder kun 2 properties og 1 constructor methode.
Mens Child_XX classene inneholder litt ulike getter'e/setter'e, men disse inneholder også 2 "felles" metoder som kommer til å bli implementert i alle inheritance av Parent klassen.

Måler er å lage en metode i en fjerde klasse som kan ta både instanse av Child_01 og av Child_02 som argument, uten å vite hvilken den for før i runtime.



Er det noen flinke java programmere som kan peke meg i riktig retning?

EDIT: Kan gi en kode for å illustrere:

Kode

run run_obj = new run ( );

Child_01 cld01_obj = new Child_01 ( );
Child_02 cld02_obj = new Child_02 ( );

run_obj.method ( cld01_obj );
run_obj.method ( cld02_obj );
Sist endret av 0xFF; 11. juli 2014 kl. 22:24.
så lenge begge klassene arver av parent, så kan du bare si at du tar inn et objekt av type parent, så skal det gå fint.
War room
0xFF's Avatar
Trådstarter Donor
Nå har jeg forflyttet meg fra maskinen med Eclipse installert, men så jeg kan lage methoden slik:

Kode

public void method ( Parent object )
{
  object.childclass_method_01 ( );
  object.childclass_method_02 ( );
}
Det var den tanken jeg også var inne på først, men avskrev den siden jeg leste at Java sender alle variabler med "pass-by-value".
det der skal fungere. Objekter skal bli sendt med pass-by-reference, men primitive typer (integere og slikt) sendes med pass-by-value. (derfor er det viktig å vite at java har både en primitiv type integer, samt et integer-objekt. Det er ganske like, men også veldig forskjellige)
Sist endret av etse; 11. juli 2014 kl. 22:39.
War room
0xFF's Avatar
Trådstarter Donor
Takker! Jeg skal ta å prøve det når jeg kommer hjem.
Jeg har brukt Java veldig lite, men vil tro du også vil kunne benytte interface til dette.
Sist endret av 0x6D; 11. juli 2014 kl. 23:40. Grunn: whitespace
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Interface er også en måte å løse det på, men tilfører ingenting i dette tilfellet, når logikken allerede er implementert i Parent-klassen.
War room
0xFF's Avatar
Trådstarter Donor
Sitat av etse Vis innlegg
det der skal fungere. Objekter skal bli sendt med pass-by-reference, men primitive typer (integere og slikt) sendes med pass-by-value. (derfor er det viktig å vite at java har både en primitiv type integer, samt et integer-objekt. Det er ganske like, men også veldig forskjellige)
Vis hele sitatet...
Det fungerte utmerket å bare override parent metodene i child klassene og sende den som en Parent object til metoden.

Sitat av robhol Vis innlegg
Interface er også en måte å løse det på, men tilfører ingenting i dette tilfellet, når logikken allerede er implementert i Parent-klassen.
Vis hele sitatet...
Interfacer er jeg godt kjent med fra andre språk så det har jeg allerede implementert i child og parent klassen.