Kotlin - 可能错误地报告了未使用的代码

时间:2016-12-20 14:11:37

标签: android android-studio intellij-idea kotlin

我的应用程序中的所有活动都有一个基类。我希望变量activityClass的类型为<? extends BaseActivity>。这就是我在Kotlin中声明变量的方式:

 var activityClass = MainActivity::class.java as Class<out BaseActivity>

问题是,在Android工作室中,我的部分“as Class<out BaseActivity>”变灰,弹出消息显示:“不需要演员”

如果我遵循AS建议并删除了转换,当我尝试使用从BaseActivity派生的其他活动分配变量时,我会遇到编译器错误。以下代码:

activityClass = SpecificActivity::class.java

给我一​​个错误“类型推断失败。预期类型不匹配:必需Class<MainActivity>,找到Class<SpecificActivity>”。

这会导致问题,主要是因为我提交了代码更改,因为选中了AS提交向导中的“清理”和“优化导入”选项,这会删除“未使用”的代码(“作为类”部分),这实际上是实际使用过。 解决方法不是关闭这些选项,因为我实际上希望将它们设置为true。

如果我提交更改,请转到使用转换的类并撤消更改,它会询问“在提交之前撤消优化导入?”。如果我确认,我会退回,所以我知道这导致了问题。

PS:我使用的是Kotlin 1.0.5-3

1 个答案:

答案 0 :(得分:3)

解决此问题的正确方法是指定变量类型:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Target .Font.Bold = .Offset(, 1).Font.Bold .NumberFormat = .Offset(, 1).NumberFormat End With End Sub