嘿,我想在kotlin中创建一个类,该类将包含我将在几个地方使用的所有扩展功能,例如:
class DateUtils {
//in this case I use jodatime
fun Long.toDateTime() : DateTime = DateTime(this)
fun String.toDateTime() : DateTime = DateTime.parse(this)
}
class SomeClassWithNoConnectionToDateUtils {
fun handleDataFromServer(startDate: String) {
someOtherFunction()
//startDate knows about toDateTime function in DateUtils
startDate.toDateTime().plusDays(4)
}
}
有没有办法执行这种操作
最佳答案
将扩展名放在DateUtils
类中将使它们仅在DateUtils
类中可用。
如果希望扩展是全局扩展,则可以将其放在文件的顶层,而不必将其放在类中。
package com.something.extensions
fun Long.toDateTime() : DateTime = DateTime(this)
fun String.toDateTime() : DateTime = DateTime.parse(this)
然后导入它们以在其他地方使用它们,如下所示:
import com.something.extensions.toDateTime
val x = 123456L.toDateTime()
关于kotlin - Kotlin中的全局扩展功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44347533/