Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 匕首问题-生成用例有错误_Java_Android_Kotlin_Dependency Injection_Dagger - Fatal编程技术网

Java 匕首问题-生成用例有错误

Java 匕首问题-生成用例有错误,java,android,kotlin,dependency-injection,dagger,Java,Android,Kotlin,Dependency Injection,Dagger,我创建了我的用例,设置了输入和输出,然后在模块上提供了它,一切正常 class GetProfileUseCase constructor( private val repository: Repository, defaultDispatcher: CoroutineDispatcher ) : SuspendUseCase<Request, ResultEntity<Response>>(defaultDispatcher) { overr

我创建了我的用例,设置了输入和输出,然后在模块上提供了它,一切正常


class GetProfileUseCase constructor(
    private val repository: Repository,
    defaultDispatcher: CoroutineDispatcher
) : SuspendUseCase<Request, ResultEntity<Response>>(defaultDispatcher) {

    override suspend fun execute(parameters: Request): ResultEntity<Response> {
        return repository.getProfile(parameters)
    }
}
因为请求类中没有参数,我尝试将其更改为:

object Request
但在生成IDE错误时:

错误:在类ViewModel_Factory中创建的方法无法应用于给定类型

这是我的视图模型:

class ViewModel @Inject constructor(
    private val getProfileUseCase: GetProfileUseCase
) : BaseViewModel()
我不知道为什么会这样,匕首不能生成类

当将请求设置为数据类时,它不会出错,但当将其设置为对象类时,它会崩溃

因为请求类中没有参数,我尝试将其更改为: 对象请求

您似乎认为
对象
相同,只有一个无参数
构造函数
,这是不正确的。为了完全理解,我鼓励你们阅读这篇文章。 但是,我将尝试提供一个简短的解释,解释为什么您的代码不工作

当您执行
对象请求
时,它会生成
请求
a,这意味着您不能再使用
val instance=Request()
创建其
实例
,原因是
请求
构造函数被kotlin编译器标记为私有

因此,当您的代码(
dagger
)尝试使用
newrequest()
注入
Request
时,它会给您带来错误

因为请求类中没有参数,我尝试将其更改为: 对象请求

您似乎认为
对象
相同,只有一个无参数
构造函数
,这是不正确的。为了完全理解,我鼓励你们阅读这篇文章。 但是,我将尝试提供一个简短的解释,解释为什么您的代码不工作

当您执行
对象请求
时,它会生成
请求
a,这意味着您不能再使用
val instance=Request()
创建其
实例
,原因是
请求
构造函数被kotlin编译器标记为私有


因此,当您的代码(
dagger
)尝试使用
new Request()
注入
Request
时,会出现错误。

是的,您是对的。谢谢你是的,你说得对。非常感谢。
class ViewModel @Inject constructor(
    private val getProfileUseCase: GetProfileUseCase
) : BaseViewModel()