我确定了这个功能
URLExecute[
"http://maps.googleapis.com/maps/api/staticmap",
{"center" -> "Brooklyn Bridge,New York,NY",
"zoom" -> "13", "size" -> "600x300"}, "Method" -> "GET"]
我需要从abstract class AbstractDao<T>(private val dataStore: KotlinEntityDataStore<Persistable>): Dao<T> where T: Persistable
类型中获取KClass
。在科特林有可能吗?
答案 0 :(得分:1)
由于type erasure,无法完成此操作。但是,您可以提供一个reified type
的工厂方法,该方法委托给接受KClass
的构造函数。这是一个简化的例子:
class WithReifiedType<T> constructor(val kc: KClass<*>) {
companion object {
inline fun <reified T> getInstance(): WithReifiedType<T> {
println("Here's your KClass: ${T::class}")
return WithReifiedType(T::class)
}
}
}
//called like this
WithReifiedType.getInstance<String>()
创建顶级函数(作为随播嵌入式工厂的替代方法)也可以接受,看起来像是调用者站点上的构造函数。
inline fun <reified T> WithReifiedType(): WithReifiedType<T> {
println("Here's your KClass: ${T::class}")
return WithReifiedType(T::class)
}
//called like this
WithReifiedType<String>()