1

我希望能够访问传递给我的方法的变量。我知道 C 可能有某种方法可以将某物的地址作为参数传递,然后将其作为指针引用并能够使用该变量。无论如何,这是一个例子。

void myFunction(address to variable) {
    *variable = "example";
}

然后将其称为:

myFunction(&somevariable);
4

3 回答 3

5

在 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
于 2013-03-04T14:37:13.770 回答
1

您需要的是一个简单的包装模板类...

class ObjWrapper<T> {
  T value;

  void setValue(T val) {
    value=val;
  }

  T getValue() {
    return value;
  }
}
于 2013-03-04T14:39:14.207 回答
0

就像是

 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' 中是对驻留在堆中某处的对象的引用。

于 2013-03-04T14:45:14.693 回答