Referenz ähnlicher Zugriff, aber wie?

Blackskyliner

Mitglied
Hallo,

ich benötige für ein Projekt eine Art Referenz. Habe m ich auch schon mit dem Thema auseinander gesetzt. Dabei habe ich öfters gelesen, dass es so in der Art wie hier möglich sei müsste:

Java:
public static void main(String[] args) {
		class A{
			public Byte x;
			A(Byte y){
				x = y;
			}
		}
		Byte _ID = 0x0;
		A a = new A(_ID);
		
		_ID = 0x5;
		Logger.getLogger("Debug").info(Integer.toHexString(a.x)); // Hier kommt 0 statt 5 raus :(
}

Außerdem habe ich auch schon mit
Java:
SoftReference<T>
und änhlichem rumgespielt, aber es hat alles nicht funktioniert... Als eine Static Variable will ich das ganze nicht nach außen geben, da es am besten wäre, wenn es von allen abhängigen Klassen direkt übernommen wird, sobald ich was im Haupt Programm ändere...

Hoffe es gibt sowas in der Art in Java, kenne mich da nicht ganz so genau aus...


Danke,
Blackskyliner
 
Moin,

Java:
public static void main(String[] args) {
		class A{
			public Byte x;
			A(Byte y){
				x = y;
			}
		}
		Byte _ID = 0x0;
		A a = new A(_ID);
		
		_ID = 0x5;
		Logger.getLogger("Debug").info(Integer.toHexString(a.x)); // Hier kommt 0 statt 5 raus :(
}

Das da 0 kommt ist doch klar, da beim Aufruf von "A a = new A(_ID)" Deine Variable "_ID" mit 0x0 belegt ist. Also hat "a.x" bei der Ausgabe auch den Wert 0x0 !!

Gruß
Klaus
 
Ja, ich weiß, jedoch sollte dieses Beispiel verdeutlichen was ich mir erhoffen würde.

Die Frage ist ja im Endeffekt, gibt es eine Möglichkeit in Java irgendwie eine Art von Referenz zu implementieren, ohne dabei static nutzen zu müssen und entsprechend dann die Klasse zu kennen, aus der die Variable gelesen werden soll.

Das Registry Pattern wäre an der stelle auch ganz nett für meine Anwendung aber bisschen zu viel...

Kann ich es also irgendwie hin bekommen, dass die Klasse eine Art Referenz auf eine Variable hält, welche ich dann an anderer Stelle im Code ändern kann, bzw. in anderen Klassen ändern kann?
 
Es es geht nicht in Java.
Eine sehr umständliche Variante wäre diese:
[Java]package valbyref;

public class ValByRef
{
public static void main(String[] args)
{
int[] test = new int[1];

test[0] = 1;
A a = new A(test);

System.out.println("A: "+a);
test[0] = 2;
System.out.println("A: "+a);
}
}

class A
{
public int[] var;

public A(int[] x)
{
var = x;
}

public int get()
{
return var[0];
}

public void set(int[] x)
{
var = x;
}

public String toString()
{
return ""+var[0];
}
}[/Java]

Ausgabe:
Code:
A: 1
A: 2
 

Neue Themen


Zurück
Oben