我遇到了Java问题。为什么以下代码返回null
?
public class TestClass {
public String top,top1,top2,top3,top4;
public TestClass(){
changeTop(top);
changeTop(top1);
}
public void printTop(){
System.out.println(top);
}
public void changeTop(String reference){
reference="lolly";
}
}
当我运行以下内容时:
TestClass x = new TestClass();
x.printTop();
它还会返回null
。我不明白,因为我以为我正在传递对ChangeTop
的引用。
我怎样才能解决这个问题?我想将参数的名称赋予方法以进行更改。
答案 0 :(得分:0)
试试这个:
public void changeTop(String reference){
this.top = reference;
}
然后运行:
TestClass x = new TestClass();
x.changeTop("lolly");
x.printTop();
修改强>
如果有很多变数,请尝试将TestClass
更改为:
public class TestClass {
public List<String> tops;
public TestClass(List<String> newTops){
changeTop(newTops);
}
public void printTop(){
System.out.println(tops);
}
public void changeTop(List<String> tops){
this.tops = tops;
}
}
尝试运行:
public static void main(String[] args) {
List<String> tops = Arrays.asList("lolly", "colly", "solly", "molly");
TestClass x = new TestClass(tops);
x.printTop();
}
输出:
[lolly, colly, solly, molly]