Я пытаюсь использовать клиент mongodb из Scala.Я использую IntelliJ IDEA.
В этой строке:
val settings: MongoClientSettings = MongoClientSettings
.builder()
.clusterSettings(clusterSettings)
.build()
Я получаю сообщение об ошибке:
clusterSettings не является членом com.mongodb.MongoClientSettings.Builder
Хотя зависимости и импорт кажутся правильными.
Вот файл sbt:
scalaVersion := "2.11.12"
libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "2.3.0"
libraryDependencies += "org.mongodb" % "mongodb-driver-core" % "3.7.0"
И включает в себя:
import com.mongodb.ServerAddress
import org.mongodb.scala.MongoClientSettings
import org.mongodb.scala.connection.ClusterSettings
Кажется, чтони у кого нет этой проблемы в интернете, но у моего коллеги недавно была такая же проблема.Любые идеи, в чем здесь проблема?
ОБНОВЛЕНИЕ:
Согласно комментарию от Росса я изменил sbt:
scalaVersion := "2.11.12"
libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "2.3.0"
И изменилкод:
import com.mongodb.connection.ClusterSettings
import org.mongodb.scala.MongoClientSettings
val settings: MongoClientSettings = MongoClientSettings
.builder()
.applyToClusterSettings((b: ClusterSettings.Builder) => b.applySettings(clusterSettings))
.build()
Теперь IDEA не жалуется и видит все API, но во время компиляции я получаю ошибку:
Ошибка: (9, 60) несоответствие типов;найдено: com.mongodb.connection.ClusterSettings.Builder => com.mongodb.connection.ClusterSettings.Builder требуется: com.mongodb.Block [com.mongodb.connection.ClusterSettings.Builder] .applyToClusterSettingS (btings).=> b.applySettings (clusterSettings))
Но если я определяю блок снаружи и затем использую его - он успешно компилируется:
val block: Block[ClusterSettings.Builder] = new Block[ClusterSettings.Builder] {
override def apply(t: ClusterSettings.Builder): Unit = {
t.applySettings(clusterSettings)
}
}
val settings: MongoClientSettings = MongoClientSettings
.builder()
.applyToClusterSettings(block)
.build()
В чем может быть причина?