2013-06-26 72 views
4

我想探索使用Scala的Datastax Cassandra CQL3驅動程序,但認爲我可能已經落在第一個障礙。使用來自Scala的Datastax Cassandra驅動程序

在用於在the Javadoc中創建羣集對象的方法中,存在addContactPoints的重載方法,該方法將一串String或一個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 

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 ? 

回答

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結束了(地址:Seq [String]):Cluster.Builder = Cluster.builder()。addContactPoints(addresses:_ *) – Gavin

相關問題