私はScalaで新しいです。私は私のコードでパッケージオブジェクトを作成:Scala複数のインポートがコンパイルされない
package mypackage.spark
import scala.language.implicitConversions
import org.apache.spark.SparkContext
import mypackage.spark.SparkContextFunctions
package object spark {
implicit def toSparkContextFunctions(sc: SparkContext): SparkContextFunctions =
new SparkContextFunctions(sc)
}
私は輸入mypackage.spark._を使用する場合、私はSparkContextFunctionsクラスのメソッドを使用できることを期待しています。このアプローチは、インポートされたパッケージオブジェクトを1つしか使用しないときに機能します。しかし、私は自分のコードに追加のインポートを追加します。たとえば、次のようにorg.apache.spark.SparkContextクラスで同じことをやって
import mypackage.spark._
import com.datastax.spark.connector._
com.datastax.spark.connector._。コードがコンパイルされず、使用されたメソッドがSparkContextクラスのメンバーではないというエラーがあります。私は輸入品の順序を変更すると、コンパイラが開始さmypackage.spark._からメソッドを参照し、停止しcom.datastax.spark.connector._
からの方法は、たぶん私は何かを逃した?見ますかまたはScalaはこれをサポートしていませんか?
ありがとうございました。
ありがとうございますが、これは私の質問の答えではありません。あなたの助言をありがとう、私はプロジェクトの私はより良い名前を使用して私は例のパッケージ名を削除しました。 –
私は自分のコードを参照するのではなく、MyXXXとOtherXXXを使用した私の例を参考にしています。あなたの説明に基づいて、あなたが使用しているワイルドカードからの名前の衝突があると言います。そうでない場合は、問題を明確にするために質問を増やしたいかもしれません。 – midor
私はこのアプローチを使用します:http://alvinalexander.com/scala/scala-how-to-add-new-methods-to-existing-classesと2つの異なるパッケージオブジェクトにメソッドを追加し、それらを同時に使用したい –