1
我與Apache反射使用的Java對象數組,並有一個Java方法的簽名是得到階名單
public static Object invokeStaticMethod(Class cls, String methodName,
Object[] args)
而且我的代碼是
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)
}
}
而且我得到異常消息
No such accessible method: echo2() on class: Tobject
java.lang.NoSuchMethodException: No such accessible method: echo2() on class: Tobject
它似乎是Java可以將Scala列表轉換爲java列表而不是數組,所以我怎樣才能獲得java數組fr om scala列表?
AFAIK,scala使用java中的數組。所以只需轉換list.toArray,這就夠了。 – Zernike
我知道。但是list.toArray不起作用。關鍵是invokeStaticMethod有兩個重載方法。第一個以object爲參數,第二個以object []爲參數。無論我給出什麼論點,都只是將我的論點視爲客體。 –