如何避免在Kotlin中使用lateinit字段进行部分覆盖

时间:2017-08-05 18:39:22

标签: android kotlin

我有一个用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%的报道: - )

0 个答案:

没有答案