gpt4 book ai didi

java - 实参 Date 无法通过方法调用转换转换为 int

转载 作者:行者123 更新时间:2023-12-01 13:58:57 26 4
gpt4 key购买 nike

Javac 对我说:

error: method nextTimeAfter in class Task cannot be applied to given types;
if (processed.nextTimeAfter(start) != null
^
required: int
found: Date
reason: actual argument Date cannot be converted to int by method invocation conversion

但在我的任务中,参数是日期,而不是整数:

public Date nextTimeAfter(Date current) {
// may return null or DATE
}

这是一个代码调用程序:

public static Iterable<Task> incoming(Iterable<Task> tasks, Date start,
Date end) {
if (start.before(end))
return tasks;
LinkedList<Task> result = new LinkedList<Task>();
for (Task processed : tasks) {
if (processed.nextTimeAfter(start) != null
&& processed.nextTimeAfter(start).before(end)) {
result.add(processed);
}
}
return result;
}

此外,任务类

public class Task {
private Date time;
private Date startTime;
private Date repeatInterval;
private Date endTime;

//...getters-setters

public Date nextTimeAfter(Date current) {
if (current == null)
throw new IllegalArgumentException("Argument <current> is NULL");
if (!isActive() || (!isRepeated() && current.after(getTime())))
return null;
Date result = getStartTime();
while (result.after(current)) {
Date temp = (Date) result.clone();
temp.setTime(temp.getTime() + getRepeatInterval().getTime());
if (temp.after(getEndTime()))
return null;
result.setTime(result.getTime() + getRepeatInterval().getTime());
}
return result;
}
}

这很奇怪,为什么它会这样工作。 Eclipse 没有显示任何错误,但编译器发誓(

最佳答案

根据您到目前为止添加和所说的内容来判断,我将遵循我之前的预感:在编译项目时(您只是在执行“javac”还是其他操作?),您没有重新编译 Task 类,并且编译器正在使用一些旧版本中该方法接受 int 而不是 Date (正如我所问:你有这样的版本吗?)。

类路径和编译选项必须在 Eclipse 中正确设置,因此它不会提示。

要修复此问题,请确保在编译其他代码之前重新编译 Task 类。

关于java - 实参 Date 无法通过方法调用转换转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19456097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com