使用Datastax Cassandra驱动程序与Scala交互

4

我希望探索从Scala使用Datastax Cassandra CQL3驱动程序,但我认为我可能在第一道障碍上失败了。

在创建Cluster对象的方法中,在Javadoc中有一个重载的addContactPoints方法,它可以将字符串序列或java.net.InetAddress序列作为参数之一。 是否有一种以惯用的Scala方式建模的方法,以便我可以尝试对输入参数的类型和数量进行模式匹配,以调用正确的方法。

附:

import com.datastax.driver.core.Cluster

def cp = Cluster.builder().addContactPoint _

def cps = Cluster.builder().addContactPoints _

cp 返回

cp: String => com.datastax.driver.core.Cluster.Builder 
然而却给出
error: ambiguous reference to overloaded definition,

both method addContactPoints in class Builder of type (x$1: <repeated...>[java.net.InetAddress])com.datastax.driver.core.Cluster.Builder

and  method addContactPoints in class Builder of type (x$1: <repeated...>[String])com.datastax.driver.core.Cluster.Builder
match expected type ?
1个回答

4

那么明确指定函数的类型呢?

import com.datastax.driver.core.Cluster

def cp = Cluster.builder().addContactPoint _
def cps(addresses: [String]) : Cluster.Builder = Cluster.builder().addContactPoints(addresses)

1
快了 - 我最终得到了 def cps(addresses: Seq[String]): Cluster.Builder = Cluster.builder().addContactPoints(addresses:_*) - Gavin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接