一尘不染

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

java

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


阅读 241

收藏
2020-12-03

共1个答案

一尘不染

在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

2020-12-03