kotlin中的全局可拓函数

kotlin中的全局可拓函数,kotlin,extension-function,Kotlin,Extension Function,嘿,我想在kotlin中创建一个类,该类将包含我将在几个地方使用的所有扩展函数,例如: class DateUtils { //in this case I use jodatime fun Long.toDateTime() : DateTime = DateTime(this) fun String.toDateTime() : DateTime = DateTime.parse(this) } class SomeClassWithNoConnectionToD

嘿,我想在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()

感谢您的快速回复,并对noob问题表示抱歉,但我是来自Java的kotlin新手。我如何使用构造函数中的数据来使用函数?不用担心,这是一个非常合理的问题。与Kotlin玩得开心:)