Why does changing directly a value in an parameter array becomes pass-by-reference but if I try to just pass the reference to the array it isn't pass-by-reference?
What is the most effective way to force it to be "pass-by-reference" in array = arrayII;
, if there is one?
public static void main(String[] args) {
// TODO code application logic here
String [] array = {"Default1","Default2"};
System.out.println("Start: " +" "+ array[0] + array[1]);
test(array,false);
System.out.println("false: " +" "+ array[0] + array[1]);
test(array,true);
System.out.println("true: " +" "+ array[0] + array[1]);
}
static void test(String[] array, boolean change){
String [] arrayII = {"Changed1","Changed2"};
if (change){
array[0] = "Changed1";
array[1] = "Changed2";
}
else {
array = arrayII;
}
}
run:
Start: Default1Default2
false: Default1Default2
true: Changed1Changed2
BUILD SUCCESSFUL (total time: 0 seconds)