Kotlin数组添加对象报错求助:如何解决IDE返回的错误?
解决数组添加对象的语法错误问题
嘿,我一眼就看出问题啦——你把JavaScript的对象字面量写法用到Kotlin里了,这俩语言的语法规则不一样,所以IDE才会报错。
问题根源
Kotlin是静态类型语言,不像JS那样可以直接写{ name: '值' }这种匿名对象来填充数组。你得先定义对应的数据结构,再创建对象放入集合中。
正确的实现步骤
先定义数据类
首先创建一个Food数据类,用来描述每个元素的结构:data class Food( val name: String, val link: String )数据类会自动帮你生成equals、toString等常用方法,非常适合这种场景。
创建可修改的集合(推荐用MutableList)
如果需要后续添加新对象,用mutableListOf创建可变列表是最方便的:val sachmelebi = mutableListOf( Food( name = "ხინკალი", link = "https://www.google.com/search?q=%E1%83%AE%E1%83%98%E1%83%9C%E1%83%99%E1%83%90%E1%83%9A%E1%83%98&oq=%E1%83%AE%E1%83%98%E1%83%9C%E1%83%99%E1%83%90%E1%83%9A%E1%83%98&aqs=chrome..69i57j46j0l6.1143j0j9&sourceid=chrome&ie=UTF-8" ), Food( name = "მწვადი", link = "https://www.google.com/search?q=%E1%83%9B%E1%83%AC%E1%83%95%E1%83%90%E1%83%93%E1%83%98&oq=%E1%83%9B%E1%83%AC%E1%83%95%E1%83%90%E1%83%93%E1%83%98&aqs=chrome.0.69i59j0l7.983j0j9&sourceid=chrome&ie=UTF-8" ), Food( name = "მაკარონის წასახემსებელი", link = "https://gemrielia.ge/recipe/6594-xraSuna-makaronis-wasaxemsebeli-romelic-wuTebSi-mzaddeba/" ) )添加新对象到集合
现在要加新元素就简单了,直接调用add方法:// 示例:添加新的食物对象 sachmelebi.add(Food("新食物名称", "对应的链接地址"))
如果你非要用数组的话
Kotlin的数组是不可变的,创建后不能直接添加元素,得转成可变列表或者创建新数组:
// 创建数组 val sachmelebiArray = arrayOf( Food("ხინკალი", "..."), // 其他元素 ) // 转成可变列表才能添加元素 val mutableList = sachmelebiArray.toMutableList() mutableList.add(Food("新元素", "..."))
总的来说,用MutableList是更符合Kotlin习惯的做法,灵活性更高~
内容的提问来源于stack exchange,提问作者kote tandarashvili
相关产品推荐
相关产品推荐

