簡體   English   中英

Kotlin-可能錯誤地報告了未使用的代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM