我希望能够访问传递给我的方法的变量。我知道 C 可能有某种方法可以将某物的地址作为参数传递,然后将其作为指针引用并能够使用该变量。无论如何,这是一个例子。
void myFunction(address to variable) {
*variable = "example";
}
然后将其称为:
myFunction(&somevariable);
在 Java 中无法通过引用或指针传递参数,因此实现您想要的效果的唯一方法是传递一个可变对象,并在您调用的方法中更改其值:
public class ChangeableInt {
private int number;
public ChangeableInt(int value) {number = value;}
public int get() {return number;}
public void set(int value) {number = value;}
}
有了这个类,你可以这样做:
void myFunction(ChangeableInt arg) {
arg.set(42);
}
...
ChangeableInt val = new ChangeableInt(123);
myFunction(val);
System.out.println(val.get()); // prints 42
您需要的是一个简单的包装模板类...
class ObjWrapper<T> {
T value;
void setValue(T val) {
value=val;
}
T getValue() {
return value;
}
}
就像是
class Myclass{
int x=15;
System.out.println(x) //15
public static void main(String... ){
Myclass obj = new Myclass()
Myclass newRef = method(obj)
System.out.println(newRef.x) //20
}
static Myclass method(Myclass ref){
ref.x=20
return ref
}
}//class
请注意,在 'obj' 中是对驻留在堆中某处的对象的引用。