问题标签 [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.

0 投票
1 回答
625 浏览

java - 从java调用带有参数作为密封类的Kotlin函数

我的 Kotlin 类TimeUtils有一个密封类,声明为:

我的 Java 类正在调用setTimeOut如下方法:

我在上面 2 行中收到错误说明expression required。任何人都可以帮助我如何解决它?

0 投票
1 回答
59 浏览

kotlin - 如何在密封类的成员上调用 .value

在下面的代码中,我想开发一个我在谷歌上看到的例子。但是当我尝试打电话时

它在 android studio 中从未被识别或定义。请看看,让我知道如何解决这个问题

密封类

0 投票
3 回答
8127 浏览

android - 如何在包中将数据类作为 Parcelable 传递?

我有一个像这样的密封类:

我想在 Bundle 中传递我的数据类,就像我们通常将值传递给一个新片段一样:

我不知道该怎么做。到目前为止,我所读到的是人们使用@Parcelize注释,这是我试图避免的 Kotlin 的一个实验性功能。另一种方法是通过 Parcelable 扩展数据类并实现 Parcelable 方法,但由于我使用自定义类作为 DataClass 中的参数(例如 SealedClass),我不知道如何在 Parcelable 实现中读取/写入这些值。这不是一个正确的方法吗?

0 投票
1 回答
150 浏览

kotlin - 如何在这个密封的类层次结构中摆脱这个样板代码?

假设我有这样的sealed class层次结构:

所有数据类都有字段x,并且应该提供copyX(x1: Int)复制所有字段的方法,但xxx1. 例如,

上面的定义可能有效,但copyX所有数据类的重复似乎非常笨拙。你会如何建议摆脱这种重复copyX

0 投票
1 回答
1849 浏览

json - KotlinX 序列化 - 使用密封的多态内容

假设我有以下 json 对象:

它们都代表媒体对象。Kotlin 密封模型如下所示:

根据 KoltinX doc,我使用了一个包装器进行多态序列化:

目标是Media使用我的包装器反序列化 json,但问题是我需要将我Media的 json 更改为MediaWrapperjson。我发现最方便的解决方案是在我的json的每一侧添加{\"media\":\"& :\"}Media

这是一个技巧,如果有更方便的反序列化多态的方法,请告诉我!

0 投票
1 回答
747 浏览

kotlin - 访问密封子类上的抽象属性集(在 kotlin 中)

我遇到了一种情况,我有一个必须在密封类的每个子类上定义的公共属性。我希望能够访问这些值的集合/列表而无需“复制”列表(通过硬编码)希望下面的代码传达我的意思

fun <T : Any> KClass<T>.createInstance(): T从 kotlin.reflect.full 了解到,但我的构造函数有非可选参数。

0 投票
0 回答
145 浏览

python - Scala 的密封在 python 中

我如何在 python中获得 scala 的密封 类的好处?也就是说,可以仅在定义它的模块中对类进行子类化。

注意不是这篇文章的欺骗。C#sealed相当于 scala 的final.

我可能想要的一个例子是定义一个数组类型,并在该类型中指定它的形状如下

事实上,有人可以继承Shape并制作自己的 rank 2 形状,fn即使它是有效的,也不会被 接受(当然这样做不一定是个好主意,但用户可以做他们喜欢的事)。

其他示例正在制作适当的枚举。我知道没有模式匹配,但我想定义一个Either类型并让某人创建第三个子类会令人困惑。

0 投票
2 回答
322 浏览

kotlin - 强制所有 Kotlin 密封类都有标准条目?

我正在调查 Kotlin 密封类。

我希望强制我所有的密封类具有 NO_OP 的标准值。

例如:-

密封类 1

密封 2 级

有什么方法可以强制单独文件中的所有密封类始终指定 NO_OP 值?

0 投票
1 回答
130 浏览

kotlin - Kotlin:函数式编程,密封类 List

我正在使用密封类 List 和 map 函数练习一些函数式编程。

到目前为止,密封类的代码

密封类中的地图功能工作正常,但现在我希望它在密封类之外运行

但是现在“head”和“tail”不再起作用,因为未解决的引用。我尝试了不同的策略,但没有任何效果。任何想法如何解决它?

0 投票
2 回答
63 浏览

c# - 为什么未密封类的未密封虚拟方法调用的顺序很重要?

为什么未密封类的未密封虚拟方法调用的顺序很重要?

我正在通过 C# 书探索 CLR,我遇到了以下摘录:

当一个类最初是密封的时,它可以在将来更改为未密封的,而不会破坏兼容性。但是,一旦一个类被解封,以后就永远不能将其更改为密封,因为这会破坏所有派生类。此外,如果未密封的类定义了任何未密封的虚拟方法,则必须使用新版本维护虚拟方法调用的顺序,否则将来可能会破坏派生类型。

有人可以以万无一失的方式解释以粗体突出显示的部分并(也许)提供一些例子吗?

我了解什么是密封/非密封类/方法,我了解什么是虚拟方法。但我不明白的是订购。摘录中提到的顺序是什么?