我可以使用Kotlin语言使用Java公共数学库吗?

时间:2019-04-03 01:31:44

标签: java kotlin

我见过可以在Java中使用kotlin的论坛和问题,但是关于我的问题,我想使用apache math commons库(“仅在Java中可用”)在kotlin中< / strong>。我的项目采用的是intellij的想法,我已经正确导入了库,向您展示了它是如何用Java编写的

import org.apache.commons.math3.distribution 

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

```

1 个答案:

答案 0 :(得分:2)

一个类就是一个类,无论它是用Java还是Kotlin定义的。在大多数情况下,这意味着您只需要在Kotlin中执行Kotlin事情,就可以在Java中执行Java事情,而不管所使用的类在何处定义。有一些例外,例如静态方法,但是大多数东西“都是可行的”。

我希望对NormalDistribution类一无所知,它将起作用:

val normalDistribution = NormalDistribution(10.0, 3.0);
val randomValue = normalDistribution.sample();

好,所以我一开始错了。我不得不将上面的文字从(10,3)更改为(10.0,3.0)。这是Java和Kotlin之间的区别。 Kotlin不会自动进行数字类型升级。因此,尽管我可以将Integer文字用于等效的Java代码,但在Kotlin中,我必须使用Double文字。但是我的IDE立刻向我显示了此信息,其中包括一条提示信息,告诉我出了什么问题。这是Kotlin,而不是Java。如果我尝试调用以double作为参数的Kotlin中定义的方法,并且尝试将其传递给整数,也会发生同样的事情。这与定义 NormalDistribution 的语言无关。在练习之后,我可以肯定地说此Kotlin代码可以正常工作。

也许更多的问题是您还不太了解Kotlin。学习Kotlin的一部分是要意识到在Kotlin代码中使用Java类是非问题的。