我们有一个API服务调用,它返回一组验证消息.每条消息中都有一个包含错误代码的字符串.
我们的实现将验证字符串转换为枚举值,然后处理枚举,因为有一些我们不关心的错误代码.
问题变成了,如何以Kotlin的方式处理消息循环:
response.validationErrors?.forEach {
val mediaFailure = decodeValidationMessage(it.message)
if (mediaFailure != MediaFailure.Unknown) {
return when (mediaFailure) {
MediaFailure.Encrypted -> DomainResponse(ErrorReasonCode.ERR_DOCUMENT_ENCRYPTED)
MediaFailure.NotSupported -> Response.validationFailed()
MediaFailure.InternalError -> Response.serviceFailed()
else -> throw NotImplementedError()
}
}
}
在这里,我们遍历所有消息,一旦消息错误不是"未知的",它就向调用者返回必要的响应.
然而,IntelliJ想要else
的路径,尽管if
阻止了这种情况的发生.
有没有一种适当的Kotlin方法来实现这种循环?