【发布时间】:2016-02-27 22:40:39
【问题描述】:
是否可以在Kotlin 中的java.lang.Math 类中添加新的静态方法?通常,感谢Kotlin Extensions,这些事情在 Kotlin 中是可能的。
我已经尝试在我创建的名为 Extensions.kt 的文件中执行以下操作:
fun Math.Companion.clamp(value:Double,minValue:Double,maxValue:Double):Double
{
return Math.max(Math.min(value,maxValue),minValue)
}
但Math.Companion 无法解析...
【问题讨论】:
-
为什么不把函数加到Double类中呢?
fun Double.clamp(min: Double, max Double),被称为1.0.clamp(2.0, 3.0)。 -
我认为这将在未来的版本中成为可能
-
不强制输入 (kotlinlang.org/api/latest/jvm/stdlib/kotlin/coerce-in.html) 您需要什么?
-
是的!谢谢@SergeyMashkov,这就是我在这种情况下所需要的。但是,我应该将我的问题重新表述为:“如何在 Kotlin 中向 Java 类添加静态方法”
-
@Eric 那么你唯一能做的就是声明顶级函数(不是扩展)并将其放入特定的包中