java – 在kotlin中向Math类添加扩展函数
发布时间:2020-05-25 00:33:00 所属栏目:Java 来源:互联网
导读:我在Kotlin中为Math类添加了一个函数,但我无法使用它,我之前使用MutableList做了这个并且它工作但是我不能用Math类做. fun Math.divideWithSubtract(num1: Int, num2: Int) = Math.exp(Math.log(num1.toDouble())) - Math.exp(Math.log(num2.toDouble())) 您
|
我在Kotlin中为Math类添加了一个函数,但我无法使用它,我之前使用MutableList做了这个并且它工作但是我不能用Math类做. fun Math.divideWithSubtract(num1: Int,num2: Int) = Math.exp(Math.log(num1.toDouble())) - Math.exp(Math.log(num2.toDouble())) 解决方法您不能在静态级别上对Math使用此扩展,因为扩展仅适用于实例.编辑:由于Math无法实例化,因此您将无法使用扩展.如果你真的想要这个方法作为扩展,你应该扩展Int: fun Int.divideWithSubtract(otherInt: Int) =
Math.exp(Math.log(this.toDouble())) - Math.exp(Math.log(otherInt.toDouble()))
你会像这样使用它: val result = 156.divideWithSubstract(15) //:Double 如果你真的想要使用static-ish方法,那么在Java和Kotlin中,你总是可以在kotlin文件中定义包级别的任何方法. 因此,Util.kt文件中的某些doSomething(args)方法可以在任何Kotlin文件中的任何位置访问,您必须在Java中调用UtilKt.doSomething(). 见:Package level functions in the official doc (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Spring-Boot:如何在@ImportResource中引用applica
- 为什么导入javax.servlet时出错.*?
- Android游戏闪屏实现步骤详解
- java-ee – 为什么不使用会话Bean而不是消息驱动Bean?
- 是否存在任何提供构建Java格式字符串的流畅方法的库?
- Java-JFrame-swing嵌套浏览器的具体步骤
- Java获取没有子字符串的文件扩展名
- java – 来自jsp的response.sendRedirect():include被忽略
- Java计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换)
- Java线程之线程同步synchronized和volatile详解
