How to do "call by reference" in Java? (Assume that we are using that term in the same way that it has been used in peer-reviewed CS literature since the 1960's; see this Wikipedia page for a simple explanation.)
Since Java doesn't support pointers, how is it possible to call a function by reference in Java like we do in C and C++??
Real pass-by-reference is impossible in Java. Java passes everything by value, including references. But you can simulate it with container Objects.
Use any of these as a method parameter:
And if you change its contents in a method, the changed contents will be available to the calling context.
Oops, you apparently mean calling a method by reference. This is also not possible in Java, as methods are no first-level citizens in Java. This may change in JDK 8, but for the time being, you will have to use interfaces to work around this limitation.
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
in your code, so you can easily substitute SomeFoo
with OtherFoo
.