我正在学习Kotlin ,我在谷歌上搜索了如何用Kotlin 创建一个班级.因此,我创建了下面的类作为测试. 在主活动中,我试图实例化来自类Board的对象,但得到以下错误:

classifier Board does not have a companion object

please let me know how to intantiate an object of an the class Board?

MainActivity:

class ActMain : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.layout_act_main)

    Board board = new Board(name = "ABC");
}
}

Board.kt:

data class Board(val name: String) {
    var age: Int = 0
}

推荐答案

Kotlin 不使用new.

Board board = new Board(name = "ABC");

这是不正确的.使用

val board = Board("ABC")

Your code reflects the Java syntax... sort of. Kotlin has type inference, so you don't need to specify the class type. However, if you do specify it, it's different from Java:

val board: Board = Board("ABC")

分号在Kotlin中也不常用,尽管如果您使用它们,它们不会 destruct 编译.

name = "ABC" just isn't valid syntax no matter if it's Java or Kotlin. Actually it is (from @hotkey): https://kotlinlang.org/docs/reference/functions.html#named-arguments

Kotlin相关问答推荐

外键是主键的一部分,但不是索引的一部分.房间

如何修改muableStateMapOf的值?

为什么可组合对象看似无状态(唯一传递的参数是函数,而不是状态),但会进行重组

Kotlin SIZE_BYTES

在kotlin中匹配多个变量

区分函数和扩展

Kotlin spring boot @RequestBody 验证未触发

KMM:编译失败:意外的 IrType 类型:KIND_NOT_SET

具有多个不同类型来源的 LiveData

Spring webflux bean验证不起作用

什么是 .kotlin_builtins 文件,我可以从我的 uberjars 中省略它们吗?

Kotlin boxed Int 不一样

在 Koin 中提供一个 Instance 作为其接口

如何暂停kotlin coroutine直到收到通知

任何处理器都无法识别以下选项:'[kapt.kotlin.generated, room.incremental]'

如何序列化/反序列化Kotlin密封类?

Kotlin内联属性的用例是什么?

尾随 lambda 语法(Kotlin)的目的是什么?

java.lang.NoClassDefFoundError:解析失败:Lkotlin/time/MonoClock

在 intelliJ 元素中集成 Kotlinx 协程