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()