Archief - [Java] "Interne" Objecten exctracten met BlueJ

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Fraggie

Legacy Member
Hallo,

Ik ben wat klassen aan het schrijven zonder GUI en gebruik daarom BlueJ om deze te kunnen testen. Zo maak ik een object van de klasse DierenWinkel. In de klasse DierenWinkel staan methoden om verschillende dieren toe te voegen, deze worden overgens opgeslaan in een ArrayList.

Nu was ik er van overtuigt dat je, objecten die je aanmaakt in de klasse DierenWinkel, kon "exctracten" via Inspect -> object uit ArrayList selecteren -> en op GET te klikken. Zodat ze op de Object Bench komen te staan.

Dit lukt me echter niet, de GET knop is nooit actief. Toch weet ik dat dit op een of andere manier gaat, gezien ik het in een ver verdelen nog gedaan heb.

Iemand die hier raad mee weet?

Alvast bedankt :)

Yngwie

Legacy Member
Ik ken niets van BlueJ, nooit mee gewerkt. Maar misschien helpt het als de arraylist public staat, waarschijnlijk staat hij nu private zodat BlueJ er niet aankan

forloRn_

Legacy Member
Zou niet mogen uitmaken: die access gebeurt toch allemaal via reflection, en daar heeft private nog maar weinig betekenis.

Fraggie

Legacy Member
Eindelijk gevonden:
Je kan alleen maar objecten uit een object halen, als je een methode gebruikt, die zo'n object als return type heeft. Waarschijnelijk is dit iets voor de latere versies van BlueJ, dus dat je ze gewoon uit een ArrayList kan halen.

* Nu ik er aan denk, in een ArrayList worden geen objecten maar referenties naar objecten op geslaan. En een pointer is geen object, dus kan ik ze niet "getten". :unsure:

MilM

Legacy Member
Is met elk Object zo (buiten primitieven dan)
Ik zie niet in waarom je dat niet zou kunnen 'getten' ? (ik ken BlueJ niet voor alle duidelijkheid)

Fraggie

Legacy Member
Met BlueJ kan je gemakkelijk met objecten werken, zonder daarvoor een GUI te maken. Zo wordt bij het aanroepen van een construtor een object in de "object bench" gezet. Op dat object kan je dan alle methoden van die klasse toepassen.

Tot zo ver heb je de Get functie van BlueJ niet nodig.

Maar wanneer je m.b.v. een object, andere objecten aan maakt, dan komen deze echter niet in de object bench te staan. Indien je echter een methode schrijf die als return type de klasse van dat object heeft, kan je ze wel in de object bench krijgen m.b.v. de Get knop:

http://www.horstmann.com/ccj2/help/bluej-7.png

Op de foto zie je gewoon een klasse waar een String geïnitializeerd wordt (dus niet werken met System.out.println(..) om te testen). Als je het object "Inspect" zie je al zijn attributen (in dit geval gewoon een String).


Mijn probleem zit hem dus echter dat BlueJ mij de mogelijkheid geeft om die pointer te "extracten" terwijl hij dat totaal niet kan. Als dit nu een bug is of gewoon met opzet gedaan weet ik niet.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan