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

kotlin - Android开发中密封类的实例

我是 Kotlin 的新手。我正在学习sealed classes,但我不明白如何在 Android 开发中使用它。能给我举个例子?

0 投票
1 回答
1334 浏览

kotlin - 将密封类声明为对象的好处

语境

我有这个sealed class和它的每个孩子:

但是我对每个类声明都收到警告:

密封子类没有状态也没有覆盖等于

这建议我将它们声明为:

问题

  • 这样做的目的是什么?
  • 有什么好处?
  • 为什么我应该把它们写成object而不是 a class
0 投票
1 回答
216 浏览

kotlin - 关于 Kotlin 中密封类的密封子类

下面的代码在不可能通过条件 Color.Dark 和 Color.Light 时编译,因为这两个类是抽象的。

我错过了什么 ?

0 投票
1 回答
263 浏览

java - 不同java服务中密封对象加解密抛出classNotFoundException

我正在使用 AES 加密下面的员工类并将其保存为 sealObject 作为 serviceA 的一部分。

而在serviceB中,当我尝试将sealedObject解密回员工类时。

它抛出 ClassNotFoundException 说org.company.serviceA.model.employee 未找到。

显然,它试图通过完全限定名称查找 ServiceA 的员工类,即使我在 serviceB 中创建了一个类似的类。

当加密和解密都在同一个服务中完成时,它工作正常。但是当它们在不同的服务中完成时,解密会抛出 ClassNotFoundException。

那么有没有办法克服 ClassNotFoundException 并解密 serviceB 中的密封对象?

0 投票
2 回答
3375 浏览

json - 在 kotlin 中使用 Gson 序列化数据类中的密封类

我为数据类Value下的 json 字段创建了一个密封类。CustomAttribute该字段可以返回StringArray of Strings

我们如何从 json 反序列化这个密封类?

0 投票
1 回答
148 浏览

java - 无法在 java 中使用使用 ObjectInputStream 和 SealedObject 的 readObject()。获取运行时错误

得到运行时错误如下:

Exception in thread "main" java.lang.ClassCastException: class Message cannot be cast to class javax.crypto.SealedObject (Message is in unnamed module of loader 'app'; javax.crypto.SealedObject is in module java.base of loader 'bootstrap') at Server.listStoreCheckDelete(Server.java:93) at Server.main(Server.java:69)

0 投票
1 回答
475 浏览

kotlin - Kotlin:为什么 *unresolved reference* 用于密封类的子类的构造函数参数

为什么上面的代码给出错误:未解析的引用:函数 nameOf 的名称并且对于看起来非常相似的函数stringOf可以正常工作。

0 投票
0 回答
293 浏览

android - 存储库到 ViewModel 通信的密封类

根据Florina Muntenescu的这篇文章,我有两个问题:

问题 1:在以下情况下考虑Respository响应SomeApiResult

when稍后在我使用时,我ViewModel将无法执行以下操作:

我该如何解决这个问题?
这是有效的:

问题 2:在创建错误响应时,我必须创建一个GenericError,因为如果我尝试实例化,sealed class我会收到一个错误。这就是我让它工作的方式:

在我的ViewModel我不会查询Error.Generic.
相反,我将使用is SomeApiResult.Error如上所示(如else ->“其他错误”)。这是正确的方法吗?

0 投票
1 回答
112 浏览

android - 我如何使用密封类来描述具有关联值的有限案例集以及较小的此类值集?

我正在研究使用密封类来表示一组有限的可能值。

这是代码生成项目的一部分,该项目将编写大量此类类,每个类都有很多案例。因此,我担心应用程序的大小。由于很可能几个案例可以具有相同的属性,我正在考虑使用包装器,例如:

这是我应该如何解决这个问题吗?

如果是这样,我怎样才能最好地从密封类访问关联值的属性?以便

变成

0 投票
2 回答
928 浏览

kotlin - 为什么编译器建议将密封的子类转换为对象?

我不明白为什么编译器建议我将带有子类的密封类转换为对象,让我们看一个例子:

对此

似乎它阻止我创建一个非状态对象,但我不知道编译器是什么意思。

谢谢你的帮助。