Apache Commons Math 'SummaryStatistics не может быть преобразована в тип '

Я пытаюсь использовать Apache Commons Math 3.3 для статического класса обработки данных и использую Eclipse Mars для его создания. Я успешно загрузил файлы bin и src и добавил их в путь сборки моего проекта; Я вижу их в своей системной библиотеке JRE. Я также добавил URL-адрес javadoc на вкладке «Расположение Javadoc». Мне удалось импортировать классы из библиотеки.

Однако, когда я пытаюсь создать экземпляр объекта из AC-M, Eclipse не может разрешить этот объект как тип. Например,

import org.apache.commons.math3.stat.descriptive.SummaryStatistics.*;

public class Stats {

public static double mean(double[] data) {
    SummaryStatistics curr = new SummaryStatistics();
    for (int a = 0; a < data.length; a++) {
        curr.addValue(data[a]);
    }
    double mn = curr.getMean();
    return mn;}

}

Оператор импорта работает нормально. Однако Eclipse сразу же считывает ошибку в моей 4-й строке кода:

Суммарная статистика не может быть преобразована в тип

Это происходит для всех других объектов, например. PearsonsCorrelation, SimpleRegression и т. д. (Я успешно импортирую соответствующие части библиотеки для всех объектов.) Eclipse предлагает опцию «Исправить настройку проекта..», но при нажатии нет доступных решений. Я очистил путь сборки безрезультатно. Буду признателен за помощь в решении этой проблемы.

РЕДАКТИРОВАТЬ: я добавил файлы jar, выбрав интересующий пакет и щелкнув «Свойства»> «Системная библиотека JRE [jre8]» «Редактировать»…> «Установленные JRE»…> «Редактировать»…> «Добавить внешние JAR-файлы»… затем добавив commons-math3 -3.3.jar в библиотеку.


person Dan    schedule 20.12.2014    source источник
comment
Хотите показать, как вы говорите, что включили библиотеку apache commons в путь сборки java вашего проекта?   -  person mystarrocks    schedule 20.12.2014


Ответы (2)


Этот импорт:

import org.apache.commons.math3.stat.descriptive.SummaryStatistics.*;

не импортирует сам SummaryStatistics, а только любые классы, определенные в этом классе. Добавлять:

import org.apache.commons.math3.stat.descriptive.SummaryStatistics;

также.

person Joe    schedule 20.12.2014
comment
Спасибо @Джо. Когда я это делаю, Eclipse читает ошибку «Ограничение доступа: тип «SummaryStatistics» не является API (ограничение на требуемую библиотеку «C:\Users\Dan \Documents\AC-M\commons-math3-3.3.jar»)» . - person Dan; 20.12.2014
comment
См. stackoverflow.com /вопросы/2824515/ ; не добавляйте внешние библиотеки в свою JRE, иначе вы вызовете stackoverflow.com/questions/9266632/ . - person Joe; 20.12.2014

Это было вызвано тем, что среда Eclipse не собиралась автоматически (Project -> Build Automatically).

Несмотря на то, что я добавлял правильные JAR-файлы (через «Проект» — «Свойства» — «Путь сборки Java» — «Библиотеки»), Eclipse не перестраивался, то есть не пересчитывал новые зависимости (и не применял их к существующему источнику).

https://www.eclipse.org/forums/index.php/t/67910/

person botha    schedule 02.03.2018