Sobes.tech
Junior — Middle

W jakich przypadkach można stosować modyfikator reified wewnątrz funkcji inline w Kotlinie?

sobes.tech AI

Odpowiedź od AI

W Kotlinie modyfikator reified jest stosowany tylko wewnątrz funkcji inline i pozwala uzyskać dostęp do typu parametru w czasie wykonywania, co zazwyczaj jest niemożliwe z powodu wymazywania typów (type erasure).

Użycie reified jest uzasadnione, gdy trzeba:

  • Sprawdzić typ za pomocą is lub !is.
  • Utworzyć instancję typu za pomocą refleksji.
  • Uzyskać klasę typu T::class lub T::class.java.

Przykład:

inline fun <reified T> Gson.fromJson(json: String): T {
    return this.fromJson(json, T::class.java)
}

Tutaj reified pozwala na użycie T::class.java wewnątrz funkcji, co jest niemożliwe bez inline i reified.