¿Es posible agregar la función de extensión a todas las clases? Estaba pensando en agregarlo a alguna clase base común como Object. ¿Es posible?
Con Kotlin, Any es el supertipo como Object para Java.
fun Any.myExtensionFunction() { // ... }Y si también quieres admitir null-receiver:
fun Any?.myExtensionFunction() { // ... }Depende de si desea utilizar el tipo del objeto en la firma (ya sea en otro argumento o en el tipo de retorno). Si no, use Any(?) como dice la respuesta de Kevin Robatel; pero si lo hace, necesita usar genéricos, por ejemplo (de la biblioteca estándar)
inline fun <T, R> T.run(block: T.() -> R): R inline fun <T> T.takeIf(predicate: (T) -> Boolean): T?etc.