Cuál es la diferencia entre
inline fun <reified T> T.TAG(): String = T::class.java.simpleNamey
fun Any.TAG(): String = this::class.java.simpleName¿Hay alguna diferencia entre usar genérico y Cualquiera como parámetro de función o como nombre de clase de función extendida?
Hay una diferencia.
inline fun <reified T> T.TAG1(): String = T::class.java.simpleName fun Any.TAG2(): String = this::class.java.simpleName TAG1 obtendría el tipo de tiempo de compilación ya que el tipo de T se determina en el momento de la compilación, y TAG2 obtendría el tipo de tiempo de ejecución. this::class es similar a this.getClass() en Java.
Por ejemplo:
val x: Any = "Foo" x.TAG1() le daría Any::class.java.simpleName , y x.TAG2() le daría String::class.java.simpleName .