![](/img/trans.png)
[英]How do I compare two objects in Java where the expected objects properties are dynamic
[英]How do I compare objects in Java?
我有一个用 Kotlin 编写的数据 class ,其中包含服务器错误对象。
如何检查它是哪个 object?
我可以像这样在 Kotlin 中做到这一点
when (failure) {
is Failure.ServerError -> test()//do something
is Failure.ServerErrorConflict -> test()//do something
}
我想在 Java 中做同样的事情:
switch (failure) {
case failure == Failure.ServerErrorConflict:
break;
}
但我得到一个expression expected
这是我的数据 class
sealed class Failure {
object NetworkConnection : Failure()
object ServerError : Failure()
object ServerErrorConflict : Failure()
/** * Extend this class for feature specific failures.*/
abstract class FeatureFailure : Failure()
}
请建议如何做到这一点。
通常在 java、object 中,引用与使用instanceof
二元运算符的类型进行比较。
在 Java 的未来版本中,对于某些类型,不需要具有instanceof
相等性检查的 if-else 条件,并且可以使用开关。 提供此好处的密封类功能目前正在 Java 15中进行预览,并在即将推出的 Java 16 中再次预览。
switch (failure) {
case NetworkConnection nc -> <do the required operation>
case ServerError se -> <do the required operation>
case ServerErrorConflict sec -> <do the required operation>
}
break
(不会失败)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.