我不确定是否可以像Java对象一样设置Kotlin扩展。
在我的程序中,我有一个名为Submission
的Java类,我想创建一个称为categories
的Kotlin扩展 - 一个ArrayList - 所以我像这样创建它。
var Submission.categories: ArrayList<String>
get() {
return this.categories
}
set(categories){
this.categories = categories
}
然而,每当我尝试设置一个类别时,程序就会崩溃,并出现如下的堆栈溢出错误:
ERR: stack=java.lang.StackOverflowError: stack size 8MB
at com.....setCategories(Extensions.kt:0)
at com.....setCategories(Extensions.kt:19)
at com.....setCategories(Extensions.kt:19)
at com.....setCategories(Extensions.kt:19)
at com.....setCategories(Extensions.kt:19)
at com.....setCategories(Extensions.kt:19)
这似乎是声明Kotlin扩展的正确语法。因此,我不确定我应该采取什么方向来解决这个问题。也许我应该只使用普通的继承?谢谢。
this.categories = categories
将调用set()
方法,这将导致无限循环。 - Egor