2011-07-10 102 views
1

我想在Eclipse中編譯「Mahout in Action」示例代碼。有一個標題爲「LimitedMemoryDiffStorage.java」的java文件。這本質上只是定義一個類是什麼導致了錯誤,如「構造函數未定義」

class LimitedMemoryDiffStorage { 

Recommender buildRecommender(DataModel model) throws TasteException { 
    DiffStorage diffStorage = new MemoryDiffStorage(
    model, Weighting.WEIGHTED, true, 10000000L); 
    return new SlopeOneRecommender(
    model, Weighting.WEIGHTED, Weighting.WEIGHTED, diffStorage); 
} 

}

但是Eclipse編譯器狀態

構造MemoryDiffStorage(DataModel的,加權,布爾型,長)是未定義

我認爲它是在mahout-core庫中定義的,並且已經包含在構建路徑中,爲什麼它仍然會導致這種錯誤?

+0

我是作者。是的,這只是代碼自書稿以來發生了變化。最終的草稿將匹配Mahout 0.5。 –

回答

4

也許您正在使用與本書中描述的庫不同的版本。很多時候,碰巧一些方法,構造函數甚至類都被改變甚至被刪除。檢查這個最好的方法是檢查mahout核心庫的來源,或至少是字節碼。要在Eclipse中查看包含構造函數的方法,請通過按CTRL + SHIFT + T並鍵入類名稱來打開具體的MemoryDiffStorage類。然後在大綱視圖中,您應該看到具有其簽名的實際構造函數。

相關問題