簡體   English   中英

Java 等同於 Kotlin 密封 Class 類型檢測

[英]Java Equivalent of Kotlin Sealed Class Type Detection

我想從 Java 中的這個 Kotlin class 訪問信息。它是通過 Gradle 庫導入的。

密封Class:

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 中的“when”邏輯,但我一直沒能找到合適的替代品。

你在 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;
    ...
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM