将kotlin中的扩展函数添加到所有类

将kotlin中的扩展函数添加到所有类,kotlin,extension-methods,kotlin-extension,Kotlin,Extension Methods,Kotlin Extension,是否可以向所有类添加扩展函数?我正在考虑将它添加到一些常见的基类中,比如对象。有可能吗?对于Kotlin,Any是类似Java的Object的超级类型 fun Any.myExtensionFunction() { // ... } 如果您也想支持空接收器: fun Any?.myExtensionFunction() { // ... } 这取决于是否要在签名中使用对象的类型(在另一个参数中,或在返回类型中)。如果没有,使用凯文·罗巴特尔的答案所说的Any(?);但是如果您

是否可以向所有类添加扩展函数?我正在考虑将它添加到一些常见的基类中,比如对象。有可能吗?

对于Kotlin,
Any
是类似Java的
Object
的超级类型

fun Any.myExtensionFunction() {
    // ...
}
如果您也想支持空接收器:

fun Any?.myExtensionFunction() {
    // ...
}

这取决于是否要在签名中使用对象的类型(在另一个参数中,或在返回类型中)。如果没有,使用凯文·罗巴特尔的答案所说的
Any(?)
;但是如果您这样做,您需要使用泛型,例如(来自标准库)

inline fun T.run(块:T.()->R):R
内联fun T.takeIf(谓词:(T)->布尔值):T?
等等

inline fun <T, R> T.run(block: T.() -> R): R

inline fun <T> T.takeIf(predicate: (T) -> Boolean): T?