gpt4 book ai didi

java - 如何在 Java 中执行 "call by reference"?

转载 作者:IT老高 更新时间:2023-10-28 21:17:57 38 4
gpt4 key购买 nike

  1. 如何在 Java 中进行“引用调用”? (假设我们使用该术语的方式与自 1960 年代以来在同行评审的 CS 文献中使用的方式相同;请参阅 this Wikipedia page 以获得简单的解释。)

  2. 既然 Java 不支持指针,那怎么可能像在 C 和 C++ 中那样在 Java 中通过引用来调用函数??

最佳答案

在 Java 中,真正的传递引用是不可能的。 Java 通过值传递所有内容,包括引用。但是你可以用容器对象来模拟它。

使用其中任何一个作为方法参数:

  • 一个数组
  • 一个集合
  • AtomicXYZ 类

如果你在一个方法中改变了它的内容,改变的内容将在调用上下文中可用。


糟糕,您显然是指通过引用调用方法。这在 Java 中也是不可能的,因为方法在 Java 中不是第一级公民。 This may change in JDK 8 ,但目前,您将不得不使用接口(interface)来解决此限制。

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");
}
}

在您的代码中使用 Foo,这样您就可以轻松地将 SomeFoo 替换为 OtherFoo

关于java - 如何在 Java 中执行 "call by reference"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6029012/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com