1

我开始使用 spark,特别是 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

谁能给我一些如何解决这个问题的例子?谢谢并恭祝安康

4

1 回答 1

1

如果您使用与要使用的类相同的命名空间,则可以访问 private[package] 成员。

但是这些方法是包私有的可能有一个很好的理由:该方法可能会随着下一个版本发布而消失。

因此,如果您需要一些小而孤立的东西,只要许可证允许,只需将代码复制到您的项目中即可。

于 2014-11-27T15:20:31.267 回答