【问题标题】:How to convert java list to array in scala?如何在scala中将java列表转换为数组?
【发布时间】:2018-09-24 17:20:53
【问题描述】:

如何将 java.util.list[POJO] 转换为 Scala 数组[POJO]? 我尝试了 list.toArray 方法,但它给出了数组 [对象]。 有人可以帮忙吗?

【问题讨论】:

  • 你能告诉我你的pojo的结构吗?
  • 尝试导入 javaConverters 并执行 list.asScala 它应该可以工作
  • 是的..它有效!

标签: java arrays scala list collections


【解决方案1】:

以下代码对我有用:

应用程序.conf

mydata.crypto {

ciphers = [

           "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"

           "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"

           "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"

          ]

 protocols = [

               "TLSv1.2"

             ]

   }

scala 中的示例代码 以列表形式阅读:

val ciphersList = config.getStringList("mydata.crypto.ciphers")

val protocolsList = config.getStringList("mydata.crypto.protocols")

导入 scala.collection.JavaConverters._

val enableCiphersList = ciphersList.asScala.toArray

val enableProtocolsList = protocolsList.asScala.toArray

现在我们可以看到 "enableCiphersList" 和 "enableProtocolsList" 是 Array of Strings 类型。

【讨论】:

    【解决方案2】:

    您必须先创建目标数组,并将其作为toArray 方法的输入:

    list.toArray(Array.ofDim[POJO](list.size))
    

    此 API 将数组实例化的所有问题从 toArray 方法转移给您,因此您有责任确保 POJO 是具体的,或者提供 ClassTag


    您也可以分两步进行转换,首先使用来自JavaConvertersasScala

    import scala.collection.JavaConverters._
    

    然后从 Scala API 调用 .toArray(与 Java 的 API 不同,它保留了类型):

    list.asScala.toArray
    

    【讨论】:

      猜你喜欢
      • 2019-05-23
      • 1970-01-01
      • 2013-03-09
      • 2017-11-15
      • 2019-04-12
      • 1970-01-01
      • 2021-10-08
      • 2020-04-27
      • 1970-01-01
      相关资源
      最近更新 更多