0
怎样把下面的代码到一个通用类,这样一方面可以指定类型参数T
而不是User
具体类型?科特林上转换为通用类
class UserService : BaseService {
val query = datastore.createQuery(User::class.java)
}
怎样把下面的代码到一个通用类,这样一方面可以指定类型参数T
而不是User
具体类型?科特林上转换为通用类
class UserService : BaseService {
val query = datastore.createQuery(User::class.java)
}
@Ufkoku是正确的,但我想详细说明一下可能的帮助。
class UserService<T>(val clazz: Class<T> : BaseService {
val query = datastore.createQuery(clazz)
}
注意,使用科特林的物化仿制药,你也可以创建一个方便的构建上面,使您可以构建一个没有经过Class
实例:
class UserService<T>(val clazz: Class<T> : BaseService {
val query = datastore.createQuery(clazz)
companion object {
inline fun <reified T> create() = UserService(T::class.java)
}
}
,那么你可以作为构建这些val s = UserService(String::class.java)
或val s = UserService.create<String>()
class Service<T>(val type: Class<T>) {
val query: Object
init {
//init query
}
}