在 Kotlin 中,扩展函数是一种为现有类添加新功能的方法。为了避免扩展函数之间的冲突,你可以采取以下几种策略:
fun String.myExtensionFunction() { // ... } fun StringBuilder.myExtensionFunction() { // ... } fun main() { val str = "Hello, world!" str.myExtensionFunction() // 调用 String 版本的扩展函数 val sb = StringBuilder("Hello, world!") sb.myExtensionFunction() // 调用 StringBuilder 版本的扩展函数 } fun Int.myExtensionFunction() { // ... } fun String.myExtensionFunction() { // ... } fun main() { val num = 42 num.myExtensionFunction() // 调用 Int 版本的扩展函数 val text = "Hello, world!" text.myExtensionFunction() // 调用 String 版本的扩展函数 } fun 更改为 companion object 中的 fun 来实现。例如:class MyClass { companion object { fun Int.myStaticExtensionFunction() { // ... } fun String.myStaticExtensionFunction() { // ... } } } fun main() { val num = 42 num.myStaticExtensionFunction() // 调用 Int 版本的静态扩展函数 val text = "Hello, world!" text.myStaticExtensionFunction() // 调用 String 版本的静态扩展函数 } 通过采用这些策略,你可以有效地避免 Kotlin 扩展函数之间的冲突。