问题标签 [sealed-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从java调用带有参数作为密封类的Kotlin函数
我的 Kotlin 类TimeUtils
有一个密封类,声明为:
我的 Java 类正在调用setTimeOut
如下方法:
我在上面 2 行中收到错误说明expression required
。任何人都可以帮助我如何解决它?
kotlin - 如何在密封类的成员上调用 .value
在下面的代码中,我想开发一个我在谷歌上看到的例子。但是当我尝试打电话时
它在 android studio 中从未被识别或定义。请看看,让我知道如何解决这个问题
密封类:
android - 如何在包中将数据类作为 Parcelable 传递?
我有一个像这样的密封类:
我想在 Bundle 中传递我的数据类,就像我们通常将值传递给一个新片段一样:
我不知道该怎么做。到目前为止,我所读到的是人们使用@Parcelize
注释,这是我试图避免的 Kotlin 的一个实验性功能。另一种方法是通过 Parcelable 扩展数据类并实现 Parcelable 方法,但由于我使用自定义类作为 DataClass 中的参数(例如 SealedClass),我不知道如何在 Parcelable 实现中读取/写入这些值。这不是一个正确的方法吗?
kotlin - 如何在这个密封的类层次结构中摆脱这个样板代码?
假设我有这样的sealed class
层次结构:
所有数据类都有字段x
,并且应该提供copyX(x1: Int)
复制所有字段的方法,但x
并x
用x1
. 例如,
上面的定义可能有效,但copyX
所有数据类的重复似乎非常笨拙。你会如何建议摆脱这种重复copyX
?
json - KotlinX 序列化 - 使用密封的多态内容
假设我有以下 json 对象:
它们都代表媒体对象。Kotlin 密封模型如下所示:
根据 KoltinX doc,我使用了一个包装器进行多态序列化:
目标是Media
使用我的包装器反序列化 json,但问题是我需要将我Media
的 json 更改为MediaWrapper
json。我发现最方便的解决方案是在我的json的每一侧添加{\"media\":\"
& :\"}
Media
这是一个技巧,如果有更方便的反序列化多态的方法,请告诉我!
kotlin - 访问密封子类上的抽象属性集(在 kotlin 中)
我遇到了一种情况,我有一个必须在密封类的每个子类上定义的公共属性。我希望能够访问这些值的集合/列表而无需“复制”列表(通过硬编码)希望下面的代码传达我的意思
我fun <T : Any> KClass<T>.createInstance(): T
从 kotlin.reflect.full 了解到,但我的构造函数有非可选参数。
kotlin - 强制所有 Kotlin 密封类都有标准条目?
我正在调查 Kotlin 密封类。
我希望强制我所有的密封类具有 NO_OP 的标准值。
例如:-
密封类 1
密封 2 级
有什么方法可以强制单独文件中的所有密封类始终指定 NO_OP 值?
kotlin - Kotlin:函数式编程,密封类 List
我正在使用密封类 List 和 map 函数练习一些函数式编程。
到目前为止,密封类的代码
密封类中的地图功能工作正常,但现在我希望它在密封类之外运行
但是现在“head”和“tail”不再起作用,因为未解决的引用。我尝试了不同的策略,但没有任何效果。任何想法如何解决它?
c# - 为什么未密封类的未密封虚拟方法调用的顺序很重要?
为什么未密封类的未密封虚拟方法调用的顺序很重要?
我正在通过 C# 书探索 CLR,我遇到了以下摘录:
当一个类最初是密封的时,它可以在将来更改为未密封的,而不会破坏兼容性。但是,一旦一个类被解封,以后就永远不能将其更改为密封,因为这会破坏所有派生类。此外,如果未密封的类定义了任何未密封的虚拟方法,则必须使用新版本维护虚拟方法调用的顺序,否则将来可能会破坏派生类型。
有人可以以万无一失的方式解释以粗体突出显示的部分并(也许)提供一些例子吗?
我了解什么是密封/非密封类/方法,我了解什么是虚拟方法。但我不明白的是订购。摘录中提到的顺序是什么?