我創建了一個科特林級與類屬性,這是我想在構造函數初始化:科特林:初始化類屬性在構造函數中
public class TestClass {
private var context : Context? = null // Nullable attribute
public constructor(context : Context) {
this.context = context
}
public fun doSomeVoodoo() {
val text : String = context!!.getString(R.string.abc_action_bar_home_description)
}
}
不幸的是我已經與「申報屬性爲可爲空? 「簽名,但該屬性將在構造函數中初始化。將該屬性聲明爲Nullable屬性使得始終需要強制使用「!!」的NonNull值或用「?」提供空值檢查。
有什麼辦法避免這種情況,如果類屬性將在構造函數初始化?我想明白這樣一個解決方案:
public class TestClass {
private var context : Context // Non-Nullable attribute
public constructor(context : Context) {
this.context = context
}
public fun doSomeVoodoo() {
val text : String = context.getString(R.string.abc_action_bar_home_description)
}
}
第二個例子正在與科特林0.12.213。你使用什麼Kotlin版本? – D3xter
它的工作原理。我已經使用0.12.613。但我認爲,我做錯了什麼。抱歉! – Christopher
有更多的案例可用,我添加了一個完整覆蓋的答案。 –