创建一个使用另一个类的构造函数
问题描述:
我尝试使用现有任务对象创建任务的模板对象。当我使用一个特殊的构造我的错误:创建一个使用另一个类的构造函数
incompatible types: Task cannot be converted to TaskTemplate
这里是我使用的创建TaskTemplate代码:
TaskTemplate bean = new TaskTemplate(newTask);
下面是我调用构造函数:
public TaskTemplate(Task task) {
this.setTitle(task.getTitle());
this.setDate(task.getDate());
}
但是,当我在创建对象的地方设置所有属性时,一切都很好。
TaskTemplate bean = new TaskTemplate();
bean.setTitle(newTask.getTitle());
bean.setDate(newTask.getDate());
为什么会发生?
如何创建一个构造函数来获取任务并创建模板?
答
您很可能需要重建项目。
当调用代码正在使用的编译类与您正在查看的源代码过期时,可能会发生此类问题,当最近的更改(如创建新的构造函数)似乎不存在时引起极大的惊愕从调用代码的角度来看。
大多数IDE会在您编码时自动重建:检查您的IDE是否配置为自动生成。如果您不使用IDE,请考虑使用一个IDE。
你确定'newTask'的类型是Task而不是TaskTemplate? – Eran 2014-10-01 10:47:57
你需要重建项目的机会吗?这种错误可能发生在编译后的类与源代码和最近的更改不同时(例如创建构造函数(不会反映出来)。 – Bohemian 2014-10-01 10:57:29
您想要做什么,比如http://ideone.com/K1lvOZ? – 2014-10-01 11:02:24