在Kotlin的类中,一个对象和一个同伴对象有什么区别?
class MyClass {
object Holder {
//something
}
companion object {
//something
}
}
它的“静态”(我是java方面的)生命周期可能有区别吗?
对象可以实现接口。在类内部,定义一个不实现任何接口的简单对象在大多数情况下没有任何好处。但是,定义实现各种接口的多个对象(例如comparator
)可能非常有用。
就生命周期而言,在类中声明的同伴对象和命名对象之间没有区别。
为什么不是: 如有任何帮助,我们将不胜感激。
主要内容:类定义,类的属性,主构造器,次构造函数,抽象类,嵌套类,内部类,匿名内部类,类的修饰符类定义 Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。 Kotlin 中使用关键字 class 声明类,后面紧跟类名: 我们也可以定义一个空类: 可以在类中定义成员函数: 类的属性 属性定义 类的属性可以用关键字 var 声明为可变的,否则使用只读关键字 val 声明为不可变。 我们可以像使用普通函数那样使用构造函数创建类实例: 要使用一个属性,只要用名称引用它即
类定义 Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。 Kotlin 中使用关键字 class 声明类,后面紧跟类名: class Runoob { // 类名为 Runoob // 大括号内是类体构成 } 我们也可以定义一个空类: class Empty 可以在类中定义成员函数: class Runoob() { fun foo()
问题内容: 我是Kotlin的新手,最近将一个简单文件从Java转换为Kotlin。我想知道为什么Android转换器将我的java类更改为Kotlin对象。 Java: 转换的Kotlin: 为什么不呢? 任何帮助将不胜感激谢谢。 问题答案: Kotlin对象就像一个无法实例化的类,因此必须按名称进行调用。(本身是静态类) android转换器看到您的类仅包含静态方法,因此将其转换为Kotlin
我有一个类包含如下所示同伴对象。 我想在运行时修改同伴对象的属性。我将在这个类中添加数百个属性。所以我要做动态。我使用了这个方法,得到如下错误。
问题是我应该把和放在哪里,因为我不能使用带有扩展函数的同伴对象?