2011-07-10 120 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); 
} 

}

しかし、日食コンパイラ状態

コンストラクタMemoryDiffStorage(DataModelは、重み付け、ブール、長い)を定義それがmahout-coreライブラリで定義され、ビルドパスに含まれていると思いますが、なぜこのようなエラーが発生するのですか?

+0

私は著者です。はい、それはちょうどその本のドラフトからコードが変更されていることです。最終草案はMahout 0.5と一致する。 –

答えて

4

本書で説明されているライブラリとは異なるバージョンのライブラリを使用している可能性があります。何度も、メソッド、コンストラクタ、クラスのいくつかが変更されたり、削除されたりすることもあります。これをチェックする最善の方法は、mahout-coreライブラリのソース、または少なくともバイトコードをチェックすることです。 Eclipseでコンストラクタを含むメソッドを表示するには、CTRL + SHIFT + Tキーを押しながらクラス名を入力して、特定のMemoryDiffStorageクラスを開きます。次に、アウトラインビューで、署名付きの実際のコンストラクタが表示されます。

関連する問題