问题标签 [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.
sealed-class - 如何使用 Kotlin 在 Android 中使用密封类?
我无法理解如何/何时使用 Kotlin 在 Android 中使用密封类。我已经阅读了文档,但我仍然对它的结构以及如何使用它感到困惑。如果有人可以帮助我理解这一点,那将有很大帮助。
android - 如何在 MutableStateFlow 中初始化密封类
我有一个像这样的密封类
我将密封类与 LiveData 一起使用,它可以工作
但是当我将 MutableLiveData 更改为 MutableStateFlow 时,我收到这样的警告
那么,如何在 MutableStateFlow 中使用密封类?
kotlin - 检查同一密封类中的两个对象是否属于同一类型
我有一个密封类声明如下:
我有一个将 SealedClass 键映射到字符串值的映射,并且我想在访问映射中的 SealedClass.Pizza 键时检索特定字符串,但是当我尝试使用时访问 SealedClass.Pizza 条目的结果返回 null我在代码的不同段中构造的 SealedClass.Pizza 键。
生成的 SealedClass.Pizza 对象似乎具有不同的哈希值,这可能可以解释为什么会出现这种情况。打印它们会导致
SealedClass$Pizza@4cf4ae53
和SealedClass$Pizza@21773412
我的印象是对象在一个类的所有实例中都是相同的,所以我不知道为什么它们有不同的哈希值,但无论如何,我希望能够使用这两个SealedClass.Pizza
对象来访问相同的字符串。我该怎么做?
android - 在 kotlin 中,我们应该选择密封类进行错误处理还是自定义异常类?
在设计一个干净的架构时,处理应用程序异常的最佳方法是什么。
1 - 使用带有内部类集的密封类
缺点:
- 这些内部类的自定义内部实现都将在同一个类文件中
优点:
- 您可以从 when 子句中受益,以耗尽所有错误类型
2 - 使用扩展异常的异常类
缺点:
- 如果有自定义实现,调用代码就变成了一些样板代码。
- 不是详尽的方法。
优点:
- 您可以为每个自定义异常或错误拥有单独的类文件。
- 灵活地通过创建类来实现几个自定义异常。
kotlin - kotlin中密封类与密封接口有什么区别
随着 Kotlin1.5
的推出,sealed interface
. 即使我知道类和接口之间的区别,我也不清楚使用sealed interface
over的最佳实践和好处是什么sealed class
interface
即使是一个简单的案例,我现在应该一直使用吗?还是会因情况而异?
谢谢
Obs:没有找到类似的问题,只有关于sealed classes
java - Java 17 中的密封类是什么
今天我将我的 java 版本从 16 更新到 17,我发现sealed
class 是其中的一个新特性。我认为可以这样声明——
但是java中密封类有什么用呢?
我也知道这是 jdk-15 中的预览功能
android - 将 Retrofit RxJava Result 映射到密封类成功和失败
我正在使用 RXJava 改造来调用我的 API,我正在尝试将我的调用结果映射到密封类成功和失败部分,
我做了映射部分,但我总是收到这个错误java.lang.RuntimeException: Failed to invoke private Result() with no args
这是我的代码:
改造界面
结果密封类
调用和映射
有人可以帮忙吗?为什么我会收到此错误?
kotlin - 在 Kotlin 中时
我正在尝试使用 Arrow Either结果而不是 try-catch,但在兔子洞中走得太深了。
我一直在尝试将其Either<Problem,Value>
用作我的功能返回类型,Problem
就像
用例的样子
但是,确实存在三种类型的问题,我不想一直用尽所有选择。
例如,我想要类似的东西
我希望能够有一些代码,比如
但是 Kotlin 抱怨NotHandled
,DataKeyDiabled
并且SubscriberNotFound
不是DataProblem
在某些情况下,我想返回 aKeyProblem
以便我可以从 中删除NotEncrypted
案例when
,而在某些情况下,我只想返回 aProblem
这样唯一的案例是NotHandled
.
我不知道如何在 Kotlin 中表达这一点。我怀疑不可能在 Kotlin 中表达这一点,所以如果有人告诉我这是不可能的,那就是一个解决方案。
我认为用 Arrow Either 代替 try-catch 是一个错误的决定。如果是这样,请有人告诉我。
我想坚持函数式反应式编程范式,其中 try-catch 不起作用,但使用 Kotlin 协程它确实可以工作。
在我看来,密封的东西的问题是使用时when
只能有一层继承,不能再多了?
也许我只是以错误的方式看待整个问题...帮助...请...