【发布时间】:2013-03-21 16:55:38
【问题描述】:
下面是我的演示程序:
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在main方法中多了一天?
在java中,参数在java中是按值传递的,为什么它表现得无所谓?
谁能帮我理解这个?
【问题讨论】:
-
@LuiggiMendoza 为什么投反对票,我不知道。
-
@Abu 为什么会改到星期五,但仍然是 21 日?
-
为什么您希望日历在添加 1 天后仍然相同?你加了一天,就反映你加了一天?