如何正确地初始化Kotlin类中storage task类型的属性

8hhllhi2  于 2023-02-09  发布在  Kotlin
关注(0)|答案(1)|浏览(97)

我已初始化名为mUploadsTask的字段,其类型为StorageTask。类StorageTask已导入,但在Android Studio上仍收到错误消息。错误消息如下:“类StorageTask〈ResultT需要一个类型参数:StorageTask.ProvideError!〉”我的猜测是,我应该在类中放置一个参数,但我不知道那是什么。
下面是我编写的代码行:

lateinit var mUploadsTask: StorageTask

请任何建议都可以,谢谢!
我试着把它改写成

lateinit var mUploadsTask: StorageTask.ProvideError

这仍然在Android Studio上给出了一个错误,因为我无法访问X1 M1 N1 X类内部的私有Provideerrror。
在这之后我试过

lateinit var mUploadsTask: StorageTask()

那么

lateinit var mUploadsTask: StorageTask(ResultT)

那么

lateinit var mUploadsTask: StorageTask<ResultT>

然后

lateinit var mUploadsTask: StorageTask(ProvideError)

而所有这些仍然导致错误,我然后尝试

lateinit var mUploadsTask: StorageTask<ResultT : StorageTask.ProvideError!>

Android Studio显示一个错误,告诉我ResultT是一个未解析的引用

aij0ehis

aij0ehis1#

由于这是一个上载任务,因此可以使用从StorageTask扩展而来的UploadTask,如ref docs

lateinit var mUploadTasks: UploadTask

Firebase Android SDK是开源的,这意味着您可以查看source code-您会注意到UploadTask实现扩展了StorageTask,并将Result类型(从StorageTask.ProvideError扩展而来)作为参数(在本例中为UploadTask.TaskSnapshot):

public class UploadTask extends StorageTask<UploadTask.TaskSnapshot> {

相关问题