如何对此方法进行Kotlin转换
我在java中有一个这样的方法,它返回Object如何对此方法进行Kotlin转换,kotlin,Kotlin,我在java中有一个这样的方法,它返回Object private static Object invokeMethod(Object target, String methodName, Class<?>[] parameterClasses, Object[] paramterValues) throws IllegalAccessException, NoSuchMethodException, IllegalArgumentException, Inv
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 ofinvokeMethod
应该编译,你当前的问题是什么?如果你看到新的错误,请告诉我,这是一个相当大的问题不读那么多代码。检查这个我设计了这个类,但我不知道如何处理invoke方法我的impl ofinvokeMethod
应该编译,你当前的问题是什么?如果你看到新的错误,请显示它们,读那么多代码是很烦人的。