我有一个用Kotlin编写的Android服务,我使用Guice注入。它有lateinit字段,不能为null,但它们必须是lateOit,因为我不能使用构造函数注入。
围绕这些方面的事情:
class VibrationService : Service() {
@Inject
private lateinit var pm: PowerManager
private lateinit var wakeLock: WakeLock
override fun onCreate() {
AlarmApplication.guice().injectMembers(this)
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "VibrationService")
wakeLock.acquire()
}
}
现在,当我创建JaCoCo报告时,访问任何lateinit字段的所有行都标记为部分覆盖。我认为Kotlin编译器会在字节码中添加一些检查,以确保在访问字段之前对其进行初始化。
有没有办法禁用这些检查?我想要100%的报道: - )