2011-07-10 104 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类。然后在大纲视图中,您应该看到具有其签名的实际构造函数。

相关问题