Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用kotlin语言中的java公共数学库吗?_Java_Kotlin - Fatal编程技术网

我可以使用kotlin语言中的java公共数学库吗?

我可以使用kotlin语言中的java公共数学库吗?,java,kotlin,Java,Kotlin,我看到过可以在java中使用kotlin的论坛和问题,但关于我的问题,我想在kotlin中使用apache math commons库(“它仅在java中可用”)。我的项目是intellij idea,我已经正确导入了库,我将向您展示它是如何用java编写的 import org.apache.commons.math3.distribution NormalDistribution normalDistribution = new NormalDistribution(10, 3); do

我看到过可以在java中使用kotlin的论坛和问题,但关于我的问题,我想在kotlin中使用apache math commons库(“它仅在java中可用”)。我的项目是intellij idea,我已经正确导入了库,我将向您展示它是如何用java编写的

import org.apache.commons.math3.distribution 

NormalDistribution normalDistribution = new NormalDistribution(10, 3);
double randomValue = normalDistribution.sample();

```

一个类就是一个类,不管它是用Java还是Kotlin定义的。在大多数情况下,这意味着您只需在Kotlin中执行Kotlin操作,在Java中执行Java操作,而不管您使用的类定义在何处。也有例外,比如静态方法,但大多数东西“只起作用”

我希望,在不了解正态分布类的情况下,这将起作用:

val normalDistribution = NormalDistribution(10.0, 3.0);
val randomValue = normalDistribution.sample();
好的,所以一开始我错了。我不得不将上面的文本从(10,3)更改为(10.0,3.0)。Java和Kotlin之间有一个区别。Kotlin不进行自动数字类型升级。因此,虽然我可以对等效的Java代码使用整数文本,但在Kotlin中,我必须使用双文本。但我的IDE立即向我展示了这一点,包括一条工具提示消息,告诉我出了什么问题。这是Kotlin的东西,不是Java的东西。如果我尝试调用Kotlin中定义的以double作为参数的方法,并尝试传递整数,也会发生同样的情况。这与中定义的语言正态分布无关。在那个练习之后,我可以肯定地说这个Kotlin代码工作得很好


也许问题在于你还不太了解科特林。学习Kotlin的一部分是认识到在Kotlin代码中使用Java类是多么不成问题。

为什么不?Kotlin与Java的互操作性应该允许这样做。您尝试过吗?你遇到了什么问题?嗯,我不太了解语言的变化,你能举个例子吗?