что вызывает ошибку типа "конструктор не определен" - PullRequest
1 голос
/ 11 июля 2011

Я пытаюсь скомпилировать пример кода «Mahout в действии» в Eclipse. Существует файл Java с названием «LimitedMemoryDiffStorage.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, Weighting, boolean, long) не определен

Я думаю, что она определена в библиотеке mahout-core и включена в путь сборки, почему она по-прежнему вызывает ошибки такого рода?

Ответы [ 2 ]

4 голосов
/ 11 июля 2011

Возможно, вы используете версию библиотеки, отличающуюся от описанной в книге. Много раз случается, что некоторые методы, конструкторы или даже классы изменяются или даже удаляются. Лучший способ проверить это - проверить источники библиотеки mahout-core или хотя бы байтовый код. Чтобы увидеть методы, включая конструктор в Eclipse, откройте определенный класс MemoryDiffStorage, нажав CTRL + SHIFT + T и введя имя класса. Затем в виде структуры вы должны увидеть фактических конструкторов с их подписями.

2 голосов
/ 11 июля 2011

Согласно документации на https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.html конструктору MemoryDiffStorage требуется три параметра, но вы передаете его четырем.

...