以下是我的演示程序:
public class Demo {
public static void main(String[] args){
Demo d = new Demo();
Calendar c = Calendar.getInstance();
System.out.println("Initial : "+c.getTime());
d.addDay1(c);
System.out.println("After addDay1 call : "+c.getTime());
}
public void addDay1(Calendar d){
d.add(Calendar.DATE, 1);
}
}
我得到的输出如下:
Initial : Thu Mar 21 05:20:53 IST 2013
After addDay1 call : Fri Mar 22 05:20:53 IST 2013
但我希望输出为:
Initial : Thu Mar 21 05:20:53 IST 2013
After addDay1 call : Thu Mar 21 05:20:53 IST 2013
为什么在我的方法调用addDay1
之后,日历对象c
在主方法中添加了一天?
在java中,参数在java中按值传递,那为什么它表现得无差别呢?
任何人都可以帮我理解这个吗?
答案 0 :(得分:2)
您正在传递日历的引用,因此在调用方法中会反映添加日期。