简体   繁体   English

Scala 中的 Java 反射,将参数传递给函数时出错

[英]Java Reflection in Scala, Error in Passing parameters to function

I am using Java Reflection in Scala, However when I try to invoke the function I am getting the following Error : java.lang.IllegalArgumentException: argument type mismatch我在 Scala 中使用 Java 反射,但是当我尝试调用该函数时出现以下错误:java.lang.IllegalArgumentException:参数类型不匹配

Following function present in testClass testClass 中存在以下函数

def test(mystr:String):String ={
  return "hi"
}

I am calling the above function the following way我通过以下方式调用上述函数

var params = new Array[Object](1)
params(0) = "hi"

//extractOject is instance of testClass
val featuresJsonStr = extractFunction.invoke(extractOject,params)

I read that invoke function expects parameters of function as array of objects, I am trying to do the same thing here我读到调用函数需要函数的参数作为对象数组,我试图在这里做同样的事情

You forgot to use varargs syntax in Scala你忘了在 Scala 中使用 varargs 语法

val featuresJsonStr = extractFunction.invoke(extractOject, params: _*) // hi

How to pass Scala array into Scala vararg method? 如何将 Scala 数组传递给 Scala vararg 方法?

Or just要不就

val featuresJsonStr = extractFunction.invoke(extractOject, "hi") // hi

(Please don't use return keyword in Scala.) (请不要在 Scala 中使用return关键字。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM