使用Scala的Datastax Cassandra驱动程序

时间:2013-06-26 12:53:49

标签: scala datastax-java-driver

我想探索使用scala的Datastax Cassandra CQL3驱动程序,但我想我可能已经陷入了第一道障碍。

the Javadoc中创建Cluster对象的方法中,addContactPoints有一个重载方法,它接受一个String序列或一个java.net.InetAddress序列作为参数。 有没有一种方法可以用惯用的Scala方式对其进行建模,这样我就可以尝试对输入参数的类型和arity进行模式匹配,以调用正确的方法。

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 
然而,

cps给出了

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 个答案:

答案 0 :(得分:4)

如何明确指定函数的类型?

import com.datastax.driver.core.Cluster

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