我有一个带有Method
参数的Java方法:
void doSomethingWithMethod(Method m) {
...
}
我有一个包含函数的Kotlin类:
class MyClass {
fun myFunction() : List<Something> {
...
}
}
我可以使用MyClass::myFunction
获得对该函数的引用,但我没有看到将其传递到doSomethingWithMethod
方法的方法。是否有一个等价的.java
属性可以应用于Kotlin类引用以获得其Java等价物?
如果没有,是否有解决方法?
答案 0 :(得分:8)
REPLACE(RTRIM(LTRIM(REPLACE(fld, ',', ' '))), ' ', ',')
header('Access-Control-Allow-Origin','*');
header('Access-Control-Allow-Methods', 'GET,POST,DELETE,PUT,PATCH');
header('Access-Control-Allow-Headers','Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With');
属性不属于标准Kotlin库,但属于官方import kotlin.reflect.jvm.javaMethod
val method = MyClass::myFunction.javaMethod
的一部分。它可以通过Maven添加以下依赖项:
javaMethod
答案 1 :(得分:0)
您可以使用标准的java反射来获取kotlin中的//build the path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"abc.mp3"];
//then you can do:
NSURL* songUrl = [NSURL fileURLWithPath: path];
mediaPlayer = [[AVPlayer alloc]initWithURL:url ];
[mediaPlayer play];
:
Method
或
MyClass::class.java.getMethod("myFunction")
不需要依赖。
文档:
Method getMethod(String name, Class... parameterTypes)
Method getDeclaredMethod(String name, Class... parameterTypes)