【发布时间】:2014-03-31 08:23:00
【问题描述】:
我想要实现的是这样的:
MyClass object = null;
doStuff(&object);
// `object` can now be non-null
我目前正在做的是这个,但我认为在Java中必须有更好的方法来实现这种行为:
MyClassPointer pointer = new MyClassPointer(null);
// pointer.object is null
doStuff(pointer);
// pointer.object can now be non-null
【问题讨论】:
-
看看here。
-
MyClass object = doStuff()怎么样? -
Java 中没有指针。实现某种形式的“out”或“by ref”调用语义的唯一方法是 mutate 作为参数提供的对象 - 如后一种情况所示。我建议将
doStuff简单地 return 设为一个有用的(复合)值。 -
doStuff()有不同的返回值。将函数视为返回两个值,一个直接通过 return,另一个通过这个 hack。 -
创建一个包含两个值作为字段的类。并返回这个类的一个实例。
标签: java pointers reference pass-by-reference pass-by-value