Kotlin:无法在列表中获取对象 getter
Kotlin: Can't get object getter in List
我的问题如下:
我创建了一个 return 列表的函数。该函数首先创建一个包含 2 个 Int 和一个 String 的列表,然后添加一个名为“Person”(具有姓名和年龄)的对象,然后 return 列表。在我的 main 中,我创建了一个 var 来获取该函数的值,因此它成为了列表。我的问题是,当我尝试获取,例如 list[3](即那个人)时,我无法调用我创建的方法 getName() 或 getAge()。
如您所见,我仍然是 Kotlin 的菜鸟。我的理论是类型列表无法获得特定的对象方法,对吗?还是有别的东西?
提前致谢!
代码:
fun listTest(): List<Any>{
val list = mutableListOf(1, 3, "Hola")
val person = Person("John", 34)
list.add(person)
return list}
fun main(){
var list = listTest()
var person = list[3].getName()
我无法从列表[3] 中写入 getName(),Kotlin 无法识别它。当然,我在 class.
中创建了方法
问题是因为列表被初始化为 Any
。只需键入大小写如下:
if(list[3] is Person) {
(list[3] as Person).getName()
}
我的问题如下:
我创建了一个 return 列表的函数。该函数首先创建一个包含 2 个 Int 和一个 String 的列表,然后添加一个名为“Person”(具有姓名和年龄)的对象,然后 return 列表。在我的 main 中,我创建了一个 var 来获取该函数的值,因此它成为了列表。我的问题是,当我尝试获取,例如 list[3](即那个人)时,我无法调用我创建的方法 getName() 或 getAge()。 如您所见,我仍然是 Kotlin 的菜鸟。我的理论是类型列表无法获得特定的对象方法,对吗?还是有别的东西? 提前致谢!
代码:
fun listTest(): List<Any>{
val list = mutableListOf(1, 3, "Hola")
val person = Person("John", 34)
list.add(person)
return list}
fun main(){
var list = listTest()
var person = list[3].getName()
我无法从列表[3] 中写入 getName(),Kotlin 无法识别它。当然,我在 class.
中创建了方法问题是因为列表被初始化为 Any
。只需键入大小写如下:
if(list[3] is Person) {
(list[3] as Person).getName()
}