因此,我是来自C#背景的学习Kotlin的新手。我一直在弄乱类型和其他一些东西。我正在尝试创建一个“ WalMartGreeters”的静态类,该类可以将欢迎词添加到列表中,然后调用一个简单的静态函数来显示它们。我的方法将一个字符串参数/字符串列表添加到可变字符串列表中,但是当我尝试向其添加值时。我收到一个预编译错误,提示“预期的String.Companion”和“获取字符串”,我尝试将其更改为将String转换为String.Companion,然后说该转换是非法的。
我得到的主要错误是:线程“主”中的异常java.lang.ClassCastException:java.lang.String无法转换为kotlin.jvm.internal.StringCompanionObject
fun main(args:Array<String>) {
walMartGreeter.addTo("Jean")
walMartGreeter.addTo("Dale")
walMartGreeter.addTo("Phil")
walMartGreeter.addTo("Chris")
walMartGreeter.listTheWholeFam()
}
class walMartGreeter(val strName:String) {
companion object classList {
var prntList = mutableListOf(String)
fun addTo(strNameToAdd:String) {
prntList.add(strNameToAdd)
}
fun addTo(listOfNames:List<String>) {
for (item in listOfNames) {
prntList.add(item)
}
}
fun listTheWholeFam() {
//println("All I do is $strName")
for(item in prntList) {
println("Hello, $item!")
}
//println("type of mutList: ${mutList.ToString()}")
if(prntList is MutableList) {
println("Yeah, it's a mutableList");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)