This is a much simplified version of a class file I’m working on, I’ve just used these classes to show my problem.
public class Test {
private String string1 = null;
private String string2 = null;
private void setString(String s) {
s = "hello";
}
private void set() {
setString(string1);
setString(string2);
}
public void print() {
System.out.println(string1);
System.out.println(string2);
}
public void initialise() {
set();
print();
}
}
public class StringTest {
public static void main(String[] args) {
Test test = new Test();
test.initialise();
}
}
Anyway, basically, after this the two string variables are still null. What causes this problem? and how can I get around it? (Still learning the fundamentals of java – if that’s relevant).
Any help/guidance is greatly appreciated.
Your problem is that Java is pass by value, so your setString method does not do anything. To change the value of
string1, you need to havestring1 = xxxx;somewhere in your code. For example: