【发布时间】:2020-03-30 17:32:49
【问题描述】:
我正在遵循 Android 中的 MVI 模式。我有以下代码:
sealed class AttendLeaveEventResult : UseCaseResult<AttendLeaveEventResult>(){
}
sealed class UseCaseResult<R> {
open class SomeFetching<R> : UseCaseResult<R>()
data class Success<R>(val result: R) : UseCaseResult<R>()
data class Failure<R>(val error: Throwable) : UseCaseResult<R>()
}
但是,当我将 UseCaseResult 类移到它自己的文件中时,我得到一个错误:
Cannot access <init>: it is private in UseCaseResult
如何解决?
【问题讨论】:
-
您到底想达到什么目标?如果你想让你的类
AttendLeaveEventResult成为密封类UseCaseResult的子类,它必须在同一个文件中。如果要将AttendLeaveEventResult包装成UseCaseResult,则必须直接实例化它,例如:Success(AttendLeaveEventResult())。AttendLeaveEventResult不应扩展任何内容。