当前位置: 首页 > 面试题库 >

如何在Java中通过引用进行调用?

蒋高超
2023-03-14
问题内容

由于Java不支持指针,如何像在C和C ++中那样通过Java引用来调用函数?


问题答案:

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

使用以下任何一个作为方法参数:

  • 数组
  • 集合
  • AtomicXYZ类

并且,如果您在方法中更改其内容,则更改的内容将可用于调用上下文。

糟糕,您的意思显然是通过引用调用方法。在Java中这也是不可能的,因为方法不是Java中的第一层公民。这可能在JDK
8中有所改变
,但是暂时,您将不得不使用接口来解决此限制。

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 rmi程序,其中客户端对服务器进行远程调用,服务器返回字符串。它与通过LAN连接的两台计算机完美配合通过局域网,但服务器和客户端都连接到互联网?我尝试了以下简单的代码,将Client.java中的localhost更改为服务器的ip地址。没用。我打这么远的电话需要什么? //远程接口- //客户。JAVA //Server.java 我得到了以下例外:java。安全Ac

  • 问题内容: 您可以使用关键字“ ref”在.NET中进行操作。用Java有什么办法吗? 问题答案: 您正在用自己的方法做什么?如果仅填充现有数组,则不需要.NET或Java中的按引用传递语义。在这两种情况下,引用都将按值传递-因此对 对象的 更改将由调用者看到。这就像告诉某人您的住所地址,并要求他们向其提供物品-没问题。 如果您 确实 需要传递引用语义,即调用方将看到对参数本身所做的任何更改,例如

  • 我使用postman测试了一个API。使用postman,我设法生成了一个令牌。 从postman那里,我通过一个get请求,使用以下内容和以下详细信息获取了用户的所有数据: 在授权类型下,我选择了“无记名令牌”并将令牌粘贴在其各自的字段中。 当我单击发送时,我得到了一个用户数据的成功响应。 在PHP中,如何在PHP函数中执行相同的api调用(使用id、电子邮件和令牌)? 我试过这个: 但当我查看

  • 使用在python中,我试图运行一个perl脚本,它在远程机器上运行一个代码来获取一些信息。 我在机器A上有两个脚本—python和perl。python脚本使用方法。两个脚本都运行得很好。 但是,perl脚本是按串行顺序执行的(一个接一个的IP)。 实际行为- python脚本通过传递'198.168来运行perl脚本。1.2' perl脚本执行代码并Hibernate15秒 python脚本然

  • 我想使用Windows 10上的命令行中的,以及许多其他Linux工具。我知道有GnuWin32和其他二进制替代品,但没有一个能像Linux的Windows子系统(WSL)那样优雅地工作;包括更新机制。 使用WSL,可以调用