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
}
}