Referezen auf Objekte an Methoden übergeben

Status
Nicht offen für weitere Antworten.

bronks

Top Contributor
Hi!

In C# gibt es für Methoden den Out-Operator und in VB macht man es mit ByRef. Gibt es sowas in Java oder doch nicht?

So, daß u.g. Klasse mit der Methode testFunktion den int 10 zurückgibt, aber gleichzeitig der Integer i, den Wert 1 enthält.



Code:
public class RefTest {

    public RefTest() {
        Integer i = new Integer(2);
        testFunktion(i);
        System.out.println(i);
    }
    
    int testFunktion(Integer i){
        i = 1;
        return 10;
    }
    
    public static void main(String[] args){
        RefTest r = new RefTest();
    }
}


Danke

Bronks
 
gibts nicht, es gibt nur

Code:
public class RefTest { 

    public RefTest() { 
        Integer[] k = new Integer[1]
        Integer i = 2; 
        k[0] = i;
        testFunktion(k); 
        System.out.println(i); 
    } 
    
    int testFunktion(Integer[] k){ 
        k[0] = 1; 
        return 10; 
    } 
    
    public static void main(String[] args){ 
        RefTest r = new RefTest(); 
    } 
}
das übergebene Objekt kann nicht ausgetauscht werden, aber dessen Inhalt verändert werden
(wenn es nicht gerade ein unveränderlicher Integer ist)

also wann immer der Parameter ersetzt werden soll
einfach einen nicht zu ersetzen Meta-Parameter nehmen und darin den INHALT ändern
 
@SlaterB:
Danke. Ich wollte mir nur 100% sicher sein.

Das ist ein netter Trick ... Hab da noch etwas geradegebogen:

Code:
public class RefTest {

    public RefTest() {
        Integer[] k = new Integer[1];
        Integer i = 2;
        k[0] = i;
        testFunktion(k);
        System.out.println(k[0]);
    }
   
    int testFunktion(Integer[] k){
        k[0] = 1;
        return 10;
    }
   
    public static void main(String[] args){
        RefTest r = new RefTest();
    }
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben