In het vorige topic waar ik een soort gelijk probleem tegenkwam zijn flink wat tips voorbij gekomen. Uiteindelijk heb ik dus besloten om opnieuw te beginnen. Nu loop ik tegen hetzelfde probleem aan als vorige keer wat voor mij duidelijk maakt dat ik het nog steeds niet snap.
Probleem:
Methodes van andere klasse zijn alleen bereikbaar als ze worden aangeroepen vanuit de methode waarin de pointer wordt gemaakt.

Ik wil dus dat MoveListener en ChipListener bij hetzelfde object van Controller kunnen komen.
Ik probeer dat dus mee te geven d.m.v de klasse ControllerPointer.
Om die pointer in ChipListener en MoveListener buiten de constructor scope te halen.
Als ik in de constructor van ChipListener C.setHand() aanroep dan werkt het perfect. Ga ik buiten de constructor dan krijg ik een NPE. Hoewel ik betwijfel of dit de juiste wijze is om dit te bewerkstelligen snap ik ook niet waarom die pointer niet buiten de scope wordt gebracht.
Probleem:
Methodes van andere klasse zijn alleen bereikbaar als ze worden aangeroepen vanuit de methode waarin de pointer wordt gemaakt.

Ik wil dus dat MoveListener en ChipListener bij hetzelfde object van Controller kunnen komen.
Ik probeer dat dus mee te geven d.m.v de klasse ControllerPointer.
code:
1
2
3
4
5
6
| ControllerPointer() { System.out.println("Pointers worden uitgevoerd"); BJController c = new BJController(); ChipListener cl = new ChipListener(c); MoveListener ml = new MoveListener(c); } |
Om die pointer in ChipListener en MoveListener buiten de constructor scope te halen.
code:
1
2
3
4
5
6
| BJController C; ChipListener(BJController controller) { C = controller; } |
Als ik in de constructor van ChipListener C.setHand() aanroep dan werkt het perfect. Ga ik buiten de constructor dan krijg ik een NPE. Hoewel ik betwijfel of dit de juiste wijze is om dit te bewerkstelligen snap ik ook niet waarom die pointer niet buiten de scope wordt gebracht.
Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl