[英]Kotlin - possibly incorrectly reporting an unused code
我的应用程序中有所有活动的基类。 我希望变量activityClass
的类型为<? extends BaseActivity>
<? extends BaseActivity>
。 这就是我在Kotlin中声明变量的方式:
var activityClass = MainActivity::class.java as Class<out BaseActivity>
问题是,在Android Studio中,我得到了“ as Class<out BaseActivity>
”部分,并且弹出消息显示:“无需as Class<out BaseActivity>
”
如果我遵循AS的建议并删除了强制转换,则在尝试使用从BaseActivity派生的其他活动来分配变量时,会出现编译器错误。 如下代码:
activityClass = SpecificActivity::class.java
给我一个错误“类型推断失败。预期的类型不匹配:必需的Class<MainActivity>
,找到的Class<SpecificActivity>
”。
这主要在我提交代码更改时引起问题,因为在AS提交向导中选中了“清除”和“优化导入”选项,这删除了实际上已实际使用的“未使用”代码(“作为类”部分)。 解决方案是不要关闭这些选项,因为我实际上希望将它们设置为true。
如果我提交更改,请转到使用强制转换的类并撤消更改,它会问我“在提交之前撤消优化导入吗?”。 如果我确认,则可以恢复投放,所以我知道这是造成此问题的原因。
PS:我使用Kotlin 1.0.5-3
解决此问题的正确方法是指定变量类型:
var activityClass: Class<out BaseActivity> = MainActivity::class.java
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.