首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从scala列表中获取java对象数组

从scala列表中获取java对象数组
EN

Stack Overflow用户
提问于 2015-07-19 10:43:39
回答 1查看 4.3K关注 0票数 1

我正在使用apache反射,有一个java方法的签名是

代码语言:javascript
复制
public static Object invokeStaticMethod(Class cls, String methodName,
  Object[] args)

我的代码是

代码语言:javascript
复制
object Tobject {
  def echo(name: String) =
    println("echo 1")

  def echo2(name: String, arg: String) =
    println ("echo 2")
}



class ApacheReflection extends FunSuite {

  test("apache reflection") {
    val factory = ClassUtils.getClass("Tobject")

    MethodUtils.invokeStaticMethod(factory,"echo2", List("sf", "f").asJava)

  }

}

我收到了异常消息

代码语言:javascript
复制
No such accessible method: echo2() on class: Tobject
java.lang.NoSuchMethodException: No such accessible method: echo2() on class: Tobject

似乎asJava可以将scala列表转换为java列表,而不是数组,那么如何从scala列表中获得java数组呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-20 15:13:36

使用.toArray的想法是一个很好的尝试。但是它给出了ArrayString (= String[]在Java中),这与ArrayObject (= Object[])对于Java是不一样的。另一方面,如果你用

代码语言:javascript
复制
List("sf", "f").toArray[Object]

一切都正常。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31500308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档