【问题标题】:Using Datastax Cassandra Driver from Scala使用 Scala 的 Datastax Cassandra 驱动程序
【发布时间】:2013-07-25 22:53:34
【问题描述】:

我想探索使用来自 scala 的 Datastax Cassandra CQL3 驱动程序,但我想我可能已经遇到了第一个障碍。

the Javadoc 中创建 Cluster 对象的方法中,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 ?

【问题讨论】:

    标签: scala datastax-java-driver


    【解决方案1】:

    明确指定函数的类型怎么样?

    import com.datastax.driver.core.Cluster
    
    def cp = Cluster.builder().addContactPoint _
    def cps(addresses: [String]) : Cluster.Builder = Cluster.builder().addContactPoints(addresses)
    

    【讨论】:

    • 差不多了 - 我最终得到了 def cps(addresses: Seq[String]): Cluster.Builder = Cluster.builder().addContactPoints(addresses:_*)
    猜你喜欢
    • 2016-02-27
    • 2017-01-20
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2013-12-23
    • 2015-10-25
    • 2020-02-01
    相关资源
    最近更新 更多