-
Java中如何实现“按引用调用”? (假设我们使用该术语的方式与自 1960 年代以来同行评审的计算机科学文献中使用该术语的方式相同;请参阅这个维基百科页面 https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference进行简单的解释。)
-
由于Java不支持指针,那么如何像在C和C++中那样在Java中通过引用调用函数呢?
在 Java 中真正的引用传递是不可能的。 Java 按值传递所有内容,包括引用。但你可以用容器对象来模拟它。
使用其中任何一个作为方法参数:
- an array
- 一个集合
- AtomicXYZ 类
如果您在方法中更改其内容,则更改的内容将可供调用上下文使用。
哎呀,您显然是指通过引用调用方法。这在 Java 中也是不可能的,因为方法在 Java 中不是一级公民。这在 JDK 8 中可能会改变 http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-3.html,但目前,您必须使用接口来解决此限制。
public interface Foo{
void doSomeThing();
}
public class SomeFoo implements Foo{
public void doSomeThing(){
System.out.println("foo");
}
}
public class OtherFoo implements Foo{
public void doSomeThing(){
System.out.println("bar");
}
}
Use Foo
在你的代码中,这样你就可以轻松地替换SomeFoo
with OtherFoo
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)