Как я могу использовать приватные функции [mllib] в своем коде?

Я начал работать со искрой, в частности, с библиотекой mllib. некоторые из функций ограничены по объему и закрытым заявлениям. Как я могу использовать эти функции в своем коде? Пример: KMeans.scala

private[mllib] def pointCost(
      centers: TraversableOnce[BreezeVectorWithNorm],
      point: BreezeVectorWithNorm): Double =
    findClosest(centers, point)._2

Если я создам класс, расширяющий kmeans, и попытаюсь использовать эту функцию, я не смогу получить к ней доступ. Отображается следующая ошибка:

error: method MethodInClassKMeans in class KMeans cannot be accessed in myClass

Может ли кто-нибудь дать мне какие-либо примеры того, как обойти это? Спасибо и привет


person Gilberto    schedule 27.11.2014    source источник


Ответы (1)


Если вы используете то же пространство имен, что и класс, который вы хотите использовать, вы можете получить доступ к членам private[package].

Но, вероятно, есть веская причина, по которой эти методы являются частными пакетами: этот метод может исчезнуть со следующим точечным выпуском.

Поэтому, если вам нужно что-то маленькое и изолированное, просто скопируйте код в свой проект, если это позволяет лицензия.

person Rüdiger Klaehn    schedule 27.11.2014