Problem mit Call by Reference



  • Hallo zusammen,

    ich weiß, dass es in Java kein Call by Reference so wie in C++ gibt, doch bin ich gerade sehr darauf angewiesen und mir fehlt ein Weg zur Lösung. Ich habe eine JUnit - Testbench, die ich nicht verändern darf. "EXPRESSIONS" ist dabei eine HashMap. Hier ein Ausschnitt:

    //...
    

    Mein Problem ist, dass die letzte Addition schief geht. Der Grund liegt daran, dass der Term in der HashMap nicht angerührt wird, obwohl sich "leftOperand" nach jeder Rechenoperation ändert. Diese Änderung ist auch nach außen sichtbar, da die ersten beiden Rechenoperationen (Multiplikation und Subtraktion) funktionieren.

    Sobald ich aber aus der HashMap den Term auslese, wird der alte, unangetastete Term verwendet! Wie kann ich das ändern? Ich muss erreichen, dass die Änderung in "leftOperand" auch im Term, der sich in der HashMap befindet, sichtbar wird.

    Die Methoden, die ich ändern darf, weil ich sie selbst geschrieben habe, sind die Rechenmethoden, die allesamt so aussehen:

    //...
    

    Die anderen Rechenoperationen sehen analog aus.

    Hat jemand eine Idee?

    Vielen Dank
    LG, freakC++



  • Das muss funktionieren, du machst was falsch. Beschreib notfalls dein Problem genauer (nicht ausführlicher, sondern genauer).



  • Das Problem hat sich gelöst :). Ich habe in einer anderen Methode die Liste intern verändert, so dass es Schwierigkeiten mit den Pointern gab.

    Danke 🙂


Anmelden zum Antworten