评估 localDate.now().minusDays(整数)
evaluating localDate.now().minusDays(integer)
我一直在开发一个程序,该程序在 xml 文件 (f
) 中存储一系列预定事件(自制 ServiceRequest
对象),并且当我需要时为了与他们一起工作,我调用了一个 readData()
方法(见下文),它将 ServiceRequest
加载到 serviceQueue
(一个 ArrayList<ServiceRequest>
)中,我标记了一个 null
文件末尾的对象以标记 ServiceRequest
对象的结尾。
当我在数组中加载对象时,我一直在检查事件的日期(LocalDate
对象)以删除超过 270 天的事件。现在这是我的问题:在将整数 270 更改为 180 以尝试跟踪更少的数据后,大多数事件立即被删除(即不应该发生的当前事件,就像今天的所有事件等等......)。这实际上是我唯一改变的东西,当我切换回 270 并从备份中恢复事件时,一切都恢复正常。 210 似乎也导致我的评估失败。
不确定我遗漏了什么,也许是关于如何评估 LocalDate.now().minusDays(XXX)
的?如果需要,我可以包含更多我的代码,但这是我唯一更改的地方,而且该方法非常基础:
public static void readData() {
serviceQueue.clear();
try {
Boolean complete = false;
FileReader reader = new FileReader(f);
ObjectInputStream in = xstream.createObjectInputStream(reader);
while(complete != true) {
ServiceRequest test = (ServiceRequest)in.readObject();
if(test != null && test.getDate().isAfter(LocalDate.now().minusDays(210))) {
serviceQueue.add(test); }
else { complete = true; }
}
in.close(); }
catch (IOException | ClassNotFoundException e) { e.printStackTrace(); }
}
我使用 LocalDateTime
变量 start
和 stop
来跟踪事件 date/time 所以 .getDate()
方法简单 returns start
LocalDate
格式:
public LocalDate getDate() { return start.toLocalDate(); }
数据检查正常。问题是将 complete
设置为 true
以防日期不匹配。
if(test != null &&test.getDate().isAfter(LocalDate.now().minusDays(210))) {
serviceQueue.add(test); }
else { complete = true; }
试试下面的代码:
if(test != null) {
if (test.getDate().isAfter(LocalDate.now().minusDays(210)) {
serviceQueue.add(test);
}
}
else {
complete = true;
}
我一直在开发一个程序,该程序在 xml 文件 (f
) 中存储一系列预定事件(自制 ServiceRequest
对象),并且当我需要时为了与他们一起工作,我调用了一个 readData()
方法(见下文),它将 ServiceRequest
加载到 serviceQueue
(一个 ArrayList<ServiceRequest>
)中,我标记了一个 null
文件末尾的对象以标记 ServiceRequest
对象的结尾。
当我在数组中加载对象时,我一直在检查事件的日期(LocalDate
对象)以删除超过 270 天的事件。现在这是我的问题:在将整数 270 更改为 180 以尝试跟踪更少的数据后,大多数事件立即被删除(即不应该发生的当前事件,就像今天的所有事件等等......)。这实际上是我唯一改变的东西,当我切换回 270 并从备份中恢复事件时,一切都恢复正常。 210 似乎也导致我的评估失败。
不确定我遗漏了什么,也许是关于如何评估 LocalDate.now().minusDays(XXX)
的?如果需要,我可以包含更多我的代码,但这是我唯一更改的地方,而且该方法非常基础:
public static void readData() {
serviceQueue.clear();
try {
Boolean complete = false;
FileReader reader = new FileReader(f);
ObjectInputStream in = xstream.createObjectInputStream(reader);
while(complete != true) {
ServiceRequest test = (ServiceRequest)in.readObject();
if(test != null && test.getDate().isAfter(LocalDate.now().minusDays(210))) {
serviceQueue.add(test); }
else { complete = true; }
}
in.close(); }
catch (IOException | ClassNotFoundException e) { e.printStackTrace(); }
}
我使用 LocalDateTime
变量 start
和 stop
来跟踪事件 date/time 所以 .getDate()
方法简单 returns start
LocalDate
格式:
public LocalDate getDate() { return start.toLocalDate(); }
数据检查正常。问题是将 complete
设置为 true
以防日期不匹配。
if(test != null &&test.getDate().isAfter(LocalDate.now().minusDays(210))) {
serviceQueue.add(test); }
else { complete = true; }
试试下面的代码:
if(test != null) {
if (test.getDate().isAfter(LocalDate.now().minusDays(210)) {
serviceQueue.add(test);
}
}
else {
complete = true;
}