gpt4 book ai didi

kotlin - kotlin 中的全局扩展功能

转载 作者:IT老高 更新时间:2023-10-28 13:34:46 27 4
gpt4 key购买 nike

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com