2014-10-01 141 views
0

我尝试使用现有任务对象创建任务的模板对象。当我使用一个特殊的构造我的错误:创建一个使用另一个类的构造函数

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()); 

为什么会发生?
如何创建一个构造函数来获取任务并创建模板?

+0

你确定'newTask'的类型是Task而不是TaskTemplate? – Eran 2014-10-01 10:47:57

+4

你需要重建项目的机会吗?这种错误可能发生在编译后的类与源代码和最近的更改不同时(例如创建构造函数(不会反映出来)。 – Bohemian 2014-10-01 10:57:29

+0

您想要做什么,比如http://ideone.com/K1lvOZ? – 2014-10-01 11:02:24

回答

0

您很可能需要重建项目。

当调用代码正在使用的编译类与您正在查看的源代码过期时,可能会发生此类问题,当最近的更改(如创建新的构造函数)似乎不存在时引起极大的惊愕从调用代码的角度来看。

大多数IDE会在您编码时自动重建:检查您的IDE是否配置为自动生成。如果您不使用IDE,请考虑使用一个IDE。

相关问题