2014-10-01 168 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。

相關問題