关闭它看起来与IDE(Eclipse)有关。我用相同的代码和不同的名称构建了一个单独的类,它工作正常。尝试清洁,重新启动等。呃。
更新的测试代码我在这里难住了,我猜这是愚蠢的。我已经将我的代码缩减到重现该问题的代码。
这将执行mMemberVar = 2;
,然后导致return now.add(Calendar.DAY_OF_YEAR, 1);
被跳过。然后它跳到return null;
这是由于Serializable
修改它自己的成员变量而引起的吗?我在上面找不到任何东西。
public class Alarm implements Serializable {
int mMemberVar = 0;
public Calendar nextTime() {
Calendar now = Calendar.getInstance();
if (true) {
if (true) {
if (true) {
mMemberVar = 2;
// return is skipped
now.add(Calendar.DAY_OF_YEAR, 1);
return now;
}
}
now.add(Calendar.DAY_OF_YEAR, 2);
return now;
}
return null;
}
}