java - 调用从 Scala 接收可变数量参数的 Java 方法

标签 java scala scala-java-interop

我正在尝试包装一个接收可变数量参数的 Java 方法,例如:

void info(String var1, Object... var2);

我使用了以下内容:

def info(message: String, any: Any*): Unit = {
   LOGGER.info(message, any)
}

但这不起作用,它最终会调用一个仅接收 1 个对象的 info:

void info(String var1, Object var2);

如何解决调用接收多个参数的java方法?

谢谢!

最佳答案

尝试

def info(message: String, any: Any*): Unit = {
  LOGGER.info(message, any.asInstanceOf[Seq[Object]]: _*)
}

def info(message: String, any: AnyRef*): Unit = {
  LOGGER.info(message, any: _*)
}

不进行强制转换,但不适用于原始类型。

关于java - 调用从 Scala 接收可变数量参数的 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873216/

相关文章:

java - JavaFX 子类的内联样式

scala - 在 Scala 中表达有状态过滤器的功能方法

scala - 发布到本地但进入项目本身

scala - 在 Java servlet 上使用 Processing.org 呈现图像

java - 如何将 scala.collection.immutable.List[scala.collection.mutable.MutableList[String]] 转换为 java.util.List[java.util.List[String]]

java - Java中compareTo的逻辑(offset的作用)

java - 按钮在 Android Fragment 中不起作用

java - 如何使用 Java 计算 PDF/Word 文档中的彩色页面

scala - 在 scala 2.8 中使用 scala.collection.JavaConversions._ 时在 scala 和 java 集合之间自动转换

scala - 从 Java 到 Scala 集合相互转换的与版本无关的方式