gpt4 book ai didi

Kotlin 密封类类型检测的 Java 等价物

转载 作者:行者123 更新时间:2023-12-05 02:39:44 29 4
gpt4 key购买 nike

我想从 Java 中的这个 Kotlin 类访问信息。它是通过 Gradle 库导入的。

密封类:

public sealed class Resource<in T> private constructor() {
public final data class Error public constructor(exception: kotlin.Throwable, statusCode: kotlin.Int?) : #.response.Resource<kotlin.Any> {
public final val exception: kotlin.Throwable /* compiled code */

public final val statusCode: kotlin.Int? /* compiled code */

public final operator fun component1(): kotlin.Throwable { /* compiled code */ }

public final operator fun component2(): kotlin.Int? { /* compiled code */ }
}

public final data class Success<T> public constructor(data: T) : com.tsfrm.commonlogic.response.Resource<T> {
public final val data: T /* compiled code */

public final operator fun component1(): T { /* compiled code */ }
}
}

在 Java 中,我试图确定它是 Success 还是 Error 类型,如果可能的话,我希望能够从中检索“statusCode”。我知道在 Kotlin 中最好使用 Kotlin 中的“何时”逻辑,但我一直无法找到合适的替代品。

最佳答案

你能用 Java 做的最好的事情是

public <T> void doResourceThing(Resource<T> r) {
if (r instanceof Success) {
Success<T> success = (Success<T>) r;
...
} else if (r instanceof Error) {
Error err = (Error) r;
...
}
}

关于Kotlin 密封类类型检测的 Java 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68943803/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com