- 浏览: 6026 次
- 性别:
最新评论
文章列表
函数参数等涉及到KType类型, 可以用它来判断是否某个类型.
我写了几个易用函数(属性):
fun KType.isClass(cls: KClass<*>): Boolean {
return this.classifier == cls
}
val KType.isTypeString: Boolean get() = this.isClass(String::class)
val KType.isTypeInt: Boolean get() = this.isClass(Int::class) || this.isClass(java.lang.In ...
kotlin函数可以通过parameters属性获取所有的函数参数信息.包括某个参数的名字/类型/是否可为空/是否可选参数等. 这使得web开发中将http请求直接映射到函数成为可能.
假设http请求是 http://www.abc.com/mymodule/add?id=123&name=xyz
fun addAction(id:Int,name:String){
}
根据 http请求的路径,可以确定要调用哪个函数, 然后将http参数和函数参数做映射, 调用函数的callBy方法即可实现. callBy是这样定义的, 参数是一个map:
pub ...
kotlin可以获得函数的所有者和绑定的对象相关的信息. 假设有下面两个类:
class A(){
fun fa(){}
}
class B: A()
val KFunction<*>.ownerClass: KClass<*> get() {
return (this as FunctionReference).owner as KClass<*>
}
可以通过KFunction.ownerClass来获取所有者类型, 下面是测试结果:
A::fa.ownerClass =& ...