Kotlin:多个命名伴侣对象

mdsimmo

我确定这是以前问过的,但我似乎找不到答案:

我有一堂课暗示了java.io.Serializableandroid.os.Parcelable这些类需要以下伴随对象:

companion object CREATOR : Parcelable.Creator<MyClass> {
    override fun createFromParcel(parcel: Parcel): MyClass
    ...
}

companion object {
    private val serialVersionUid: Long = 123
}

问题是我不能同时拥有这两个伴随对象,因为这会导致only one companion object per class异常。

如何在同一个类中有两个名称不同的伴随对象?

Ircover

可能是您误解了Java示例。

public static Parcelable.Creator<SDFileDir> CREATOR = ...;
public static long serialVersionUid = 123;

在Java中-是的,它是分离的静态对象。您可以在类中放置任意数量的静态字段。

在Kotlin中,应该只有一个静态对象(在此称为Companion)。但这就像这里的另一堂课。因此,所有新的静态字段都应位于其中。

companion object {
    @JvmField
    val CREATOR: Parcelable.Creator<SDFileDir> = ...
    val serialVersionUid: Long = 123
}

还有一件事:注释@JvmField可正确与Java一起使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Kotlin:类中的对象和伴侣对象之间的区别

来自分类Dev

Kotlin对象vs伴侣对象vs包范围方法

来自分类Dev

如何在Java中访问Kotlin伴侣对象?

来自分类Dev

Kotlin在伴侣对象中使用Apply引发意外错误

来自分类Dev

kotlin,如何将扩展功能添加到已定义的类伴侣对象中

来自分类Dev

Kotlin:伴侣对象lateinit vars是否初始化过一次?

来自分类Dev

重命名对象的多个键

来自分类Dev

如何从类名获取伴侣对象?

来自分类Dev

从模块导入多个函数而不显式导出对象或命名导出

来自分类Dev

伴侣对象在类中时使用.tupled方法

来自分类Dev

斯卡拉案例类放在伴侣对象中的方法?

来自分类Dev

如何在伴侣对象中保留内部变量

来自分类Dev

处理在多个命名空间范围内声明的对象的最佳实践

来自分类Dev

伴侣字典

来自分类Dev

重命名多个文件?

来自分类Dev

命名多个Android组件

来自分类Dev

使用“多个”命名空间

来自分类Dev

命名多个NSButton

来自分类Dev

重命名多个文件

来自分类Dev

重命名多个目录

来自分类Dev

重命名多个文件

来自分类Dev

在form_for中传递多个对象以使用命名空间一次更新所有对象

来自分类Dev

伴侣对象和Scala中的单例类有什么区别(Guice)

来自分类Dev

特质可以保证它在编译或运行时被伴侣对象继承吗?

来自分类Dev

使用trait中指定的方法的通用内部伴侣对象返回类实例

来自分类Dev

将方法从伴侣对象移动到类时类型不匹配

来自分类Dev

特性可以保证它在编译或运行时被伴侣对象继承吗?

来自分类Dev

IoC命名对象列表

来自分类Dev

从函数命名对象