问题标签 [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 投票
7 回答
2759 浏览

java - Java中的“密封接口”有什么意义?

密封类密封接口是 Java 15 中的一个预览功能,Java 16中有第二个预览,现在建议在 Java 17 中交付

他们提供了经典示例,例如Shape-> CircleRectangle等。

我了解密封switch提供的语句示例对我来说很有意义。但是,密封接口对我来说是个谜。任何实现接口的类都被迫为它们提供定义。接口不会损害实现的完整性,因为接口本身是无状态的。我是否想将实现限制为几个选定的类都没关系。

你能告诉我 Java 15+ 中密封接口的正确用例吗?

0 投票
1 回答
2522 浏览

java - Kotlin 中的 Sealed 类和继承原理有什么区别?

我是 Kotlin 的新手。我正在读一本书,一个密封类作为枚举的“扩展”显示在那里。我看不出它们之间的相似之处。在我看来,Sealed 类与继承更相关,因为每个类都可以从它继承并为其添加功能和属性例如:

我在这里看不到我们在Enum中的,只是继承的扭结。有人可以解释一下我找不到的 Enum 和 Sealed 之间的想象吗?也许它的强大之处在于将它与when表达式一起使用?

0 投票
1 回答
350 浏览

android - 如何为 ItemCallback 的密封类设置唯一 ID?

我实现ListAdapter了,那个 T 是密封类ViewHolderModel。然后,我尝试实现DiffUtil.ItemCallback要使用的Adapter,但是遇到了一个问题。

ViewHolderModel包括各种数据对象,它们是唯一的,一些对象是不明确的。

如何实现高效的 ItemCallback?

ViewHolderModel(密封类)

项目回调

我尝试将抽象字段(id)添加到ViewHolderModel如下,但看起来不太好。还有比这更好的方法吗?

0 投票
1 回答
1566 浏览

kotlin - 如何使用 kotlinx.serialization 序列化通用密封类

不确定是否有可能,但对于我的一生,我无法弄清楚如何序列化它。

T 中的所有内容都使用@Serializable ex:

0 投票
1 回答
132 浏览

kotlin - Kotlin 枚举类型,其中子级可与父级互换

我有一个Transaction带有子类的类IncomeExpense并且有一个属性category。收入和支出有不同的类别,即 anIncomeCategoryExpenseCategory。我需要一份收入和支出的清单,所以我创建了一个交易清单。但我还需要访问他们的类别,所以Transaction还需要一个类别属性。由于类别可以采用的值是有限的,因此枚举或密封类将非常实用。但我需要一些超类型与子类型可互换的东西。

有没有办法指定一个通用类别,以便 Transaction 类可以接受IncomeCategoryExpenseCategory作为参数?

PS:抱歉标题太糟糕了,我想不出更好的方式来描述我的问题

0 投票
1 回答
648 浏览

json - Moshi 错误:@JsonClass 不能应用于 [class]。不得密封

想象一下这个数据样本

Meta_data 中的值可以有多种类型。在我使用的生成器中,数据类型应该像这样创建。

对于 Moshi,我知道您必须在数据类之上添加 @JsonClass(generateAdapter = true) 。因此我有这样的东西

我想指出,完整的 json 比这大得多。然而,这是我唯一的问题。我也有一些枚举问题,但可以用字符串替换

我收到的错误是error: @JsonClass can't be applied to net......Activity.Value: must not be seal public static abstract class Value

因此我的问题是,我如何解码具有多种枚举类型的 json。

我会在这里添加这个,在 xCode(swift) 中,这就是我设法做到的。

调用数据

0 投票
0 回答
192 浏览

mongodb - 如何使用 Kotlin 密封类编写 Mongo 类型查询

我想在 Kmongo (litote.org) 插件的帮助下使用 Kotlin 访问 Mongo DB,我只想编写 Kmong Typed 查询。https://litote.org/kmongo/typed-queries/

我的 Kotlin 数据类如下:

所以我正常的 Komogo 查询如下:

以同样的方式,我如何访问存在于 StdClass 密封类的 SubClass 中的 subClassId

我尝试过以下查询格式,但它不起作用,

所以请帮助我,提前谢谢..

0 投票
1 回答
51 浏览

kotlin - 对密封类的抽象中间子类进行不必要/损坏的检查,在详尽时需要

我有一个密封的类层次结构,如下所示:

然后我想要一个详尽的when

但这是不允许的,因为

但这不是真的!我已经涵盖了所有可能性。没有任何价值与我的时间不匹配。

此外,如果我添加一个is C子句:

它实际上没有被称为. C被打印。

这实际上也是另一个方向的问题。假设我想要相同的逻辑来处理B:CD:的所有子类

这也是不允许的,即使它详尽的。这里发生了什么?这是 Kotlin 中的错误吗?我错过了什么吗?

0 投票
1 回答
108 浏览

android - 具有密封类的协程

我的项目有很多操作必须一个接一个地执行。我正在使用侦听器,但我在 Android 上找到了本教程 Kotlin coroutines,我想用可读性更好的代码更改我的服务器调用。但我想我错过了一些东西。下面的代码总是从getTime1()函数返回一个错误:

但是,如果我使用侦听器 ( getTime()) 一切正常:

提前感谢您的帮助。

0 投票
2 回答
283 浏览

java - 扩展数据类密封类kotlin

我有一个密封的类,它具有从它扩展的不同子类型。当我尝试使用 when 子句过滤子类型时,我不断收到未解析的引用“名称”

如何使用“名称”参数在 when 子句中进行过滤并构建自定义对象。