this übergeben und Daten als Referenz zurück



  • class A
    {
      String s;
      public A(String st)
      {
        s = st; 
      }
    
      public A()
      {
        B b= new B();
        b.methode(this); // hier will ich, dass mein "interesantes Zeugs" nun in diesem Objekt ist
      }                  // ausgehend davon, dass ein Objekt erzeugt worden ist
    }
    
    class B
    {
      //...
      public void methode(A a)
      {
        a = new A("interesantes Zeugs");
      }
    
    }
    

    So hat es nicht funktioniert.
    Wie mache ich das richtig ?



  • das Problem ist, daß du B.methode eine Kopie der Referenz schickst..sobald du sagst a=new A("bla"); verweist die Referenz nicht mehr auf das ehemalige this , sondern auf das neuangelegte Objekt.. daher gibts keine Veränderungen am ursprünglichen Objekt..du könntest zum Beispiel in Klasse A eine Methode setString(String s) einbauen und dann in B.methode sagen: a.setString("bla");
    dann würde a immer noch auf das gleiche Objekt wie this zeigen und somit auch eine Veränderung bewirken



  • Vielen Dank erstmal.

    Jo, aber ich muss das irgendwie mit this hinbekommen, weil das Bsp. hier nur ein Abbild für ein viel komplexeres Programm ist.
    Und da kann will ich die Attribute nicht alle mit set-Methoden setzen...



  • man könnts mit ner Factory-Methode machen:

    also sowas:

    class A
    {
    ..
      public static A createA()
      {
        B b=new B();
        return b.methode();
    
      }
    }
    
    class B
    {
      public A methode()
      {
         return new A("bla");
      }
    
    }
    
    //
    A a= A.createA(); //statt new A();
    

    [ Dieser Beitrag wurde am 12.06.2003 um 01:00 Uhr von crass editiert. ]



  • OK.
    Danke !


Anmelden zum Antworten