如何对此方法进行Kotlin转换

如何对此方法进行Kotlin转换,kotlin,Kotlin,我在java中有一个这样的方法,它返回Object private static Object invokeMethod(Object target, String methodName, Class<?>[] parameterClasses, Object[] paramterValues) throws IllegalAccessException, NoSuchMethodException, IllegalArgumentException, Inv

我在java中有一个这样的方法,它返回Object

private static Object invokeMethod(Object target, String methodName, Class<?>[] parameterClasses, Object[] paramterValues)
            throws IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
        Class<?> clazz = target.getClass();
        Method method = clazz.getDeclaredMethod(methodName, parameterClasses);
        return method.invoke(target, paramterValues);
    }
private static Object invokeMethod(对象目标、字符串方法名、类[]参数类、对象[]参数值)
抛出IllegalAccessException、NoSuchMethodException、IllegalArgumentException、InvocationTargetException{
Class clazz=target.getClass();
方法Method=clazz.getDeclaredMethod(方法名,参数类);
返回方法.invoke(目标,参数值);
}
当我把它转换成kotlin时,我不知道类的数组是如何用kotlin编写的

我有这样的东西

 @Throws(IllegalAccessException::class, NoSuchMethodException::class, IllegalArgumentException::class, InvocationTargetException::class)
    private fun invokeMethod(target: Any, methodName: String, parameterClasses: Array<Class<*>>?, paramterValues: Array<Any>?): Any {
        val clazz = target.javaClass
        val method = clazz.getDeclaredMethod(methodName, *parameterClasses)
        return method!!.invoke(target, paramterValues)
    }
@Throws(IllegalAccessException::class、NoSuchMethodException::class、IllegalArgumentException::class、InvocationTargetException::class)

PosialFooLoopeMeod(Target:Apple,MultAd:String,参数类:数组),ParaMalVals:Strase

< P>不能使用可扩展类型的扩展运算符,如<代码>数组> < /C> >考虑下面的变化:

private fun invokeMethod(
    target: Any,
    methodName: String,
    parameterClasses: Array<Class<*>>, //not nullable
    parameterValues: Array<Any>?
): Any {
    val clazz = target.javaClass
    val method = clazz.getDeclaredMethod(methodName, *parameterClasses)
    return method!!.invoke(target, parameterValues)
}
private-fun-invokeMethod(
目标:任何,
methodName:String,
parameterClasses:数组,//不可为空
参数值:数组?
):任何{
val clazz=target.javaClass
val method=clazz.getDeclaredMethod(methodName,*参数类)
返回方法!!.invoke(目标,参数值)
}

<代码> > p>不能使用可扩展类型的扩展运算符,如<代码>数组> <代码>。请考虑下面的更改:

private fun invokeMethod(
    target: Any,
    methodName: String,
    parameterClasses: Array<Class<*>>, //not nullable
    parameterValues: Array<Any>?
): Any {
    val clazz = target.javaClass
    val method = clazz.getDeclaredMethod(methodName, *parameterClasses)
    return method!!.invoke(target, parameterValues)
}
private-fun-invokeMethod(
目标:任何,
methodName:String,
parameterClasses:数组,//不可为空
参数值:数组?
):任何{
val clazz=target.javaClass
val method=clazz.getDeclaredMethod(methodName,*参数类)
返回方法!!.invoke(目标,参数值)
}

您不能将扩展运算符用于可为空的类型,请尝试删除函数参数声明中的所有

private fun invokeMethod(
    target: Any,
    methodName: String,
    parameterClasses: Array<Class<*>>, // notnull
    parameterValues: Array<Any> // notnull too
): Any {
    val clazz = target.javaClass
    val method = clazz.getDeclaredMethod(methodName, *parameterClasses)
    return method!!.invoke(target, *parameterValues) // spread operator needed here too
}
private-fun-invokeMethod(
目标:任何,
methodName:String,
参数类:数组,//notnull
参数值:数组//也不为空
):任何{
val clazz=target.javaClass
val method=clazz.getDeclaredMethod(methodName,*参数类)
return method!!.invoke(target,*parameterValues)//此处也需要spread运算符
}

您不能将扩展运算符用于可为空的类型,请尝试删除函数参数声明中的所有

private fun invokeMethod(
    target: Any,
    methodName: String,
    parameterClasses: Array<Class<*>>, // notnull
    parameterValues: Array<Any> // notnull too
): Any {
    val clazz = target.javaClass
    val method = clazz.getDeclaredMethod(methodName, *parameterClasses)
    return method!!.invoke(target, *parameterValues) // spread operator needed here too
}
private-fun-invokeMethod(
目标:任何,
methodName:String,
参数类:数组,//notnull
参数值:数组//也不为空
):任何{
val clazz=target.javaClass
val method=clazz.getDeclaredMethod(methodName,*参数类)
return method!!.invoke(target,*parameterValues)//此处也需要spread运算符
}

请尝试以下操作,而不是
参数类:数组?
参数类:数组


不能对可为null类型的参数使用扩展运算符。

请尝试以下操作,而不是
参数类:数组?
参数类:数组


不能对可为null类型的参数使用扩展运算符。

这是一个类数组,因为您可以看到语法:parameterClasses:array?,此处?表示类参数的数组可以为null这是一个类数组,因为您可以看到语法:parameterClasses:array?,此处?表示类参数的数组可以为null检查我的设计在这个类中,我不知道如何处理invoke Method检查这个我设计了这个类,但我不知道如何处理invoke Method检查这个我设计了这个类,但我不知道如何处理invoke Method我的impl of
invokeMethod
应该编译,你当前的问题是什么?如果你看到新的错误,请告诉我,这是一个相当大的问题不读那么多代码。检查这个我设计了这个类,但我不知道如何处理invoke方法我的impl of
invokeMethod
应该编译,你当前的问题是什么?如果你看到新的错误,请显示它们,读那么多代码是很烦人的。