Могу ли я использовать библиотеку Java по математике на языке котлин? - PullRequest
1 голос
/ 03 апреля 2019

Я видел форумы и вопросы, которые можно использовать kotlin в java, но, в связи с моим вопросом, я хочу использовать библиотеку apache math commons («которая доступна только в java») в пределах kotlin . Мой проект в интеллигентной идее, и я правильно импортировал библиотеку, я покажу вам, как она написана в java

import org.apache.commons.math3.distribution 

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

```

1 Ответ

3 голосов
/ 03 апреля 2019

Класс - это класс, независимо от того, определен ли он в 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. Котлин не продвигает автоматическое продвижение числовых типов. Поэтому, хотя я мог использовать литералы Integer для эквивалентного Java-кода, в Kotlin мне пришлось использовать литералы Double. Но моя IDE показала мне это сразу, включая всплывающую подсказку, в которой говорилось, что не так. И это вещь Kotlin, а не Java. То же самое произошло бы, если бы я попытался вызвать метод, определенный в Kotlin, принимая в качестве значений double, и я попытался передать ему целые числа. Это никак не связано с тем, в каком языке определен NormalDistribution . После этого упражнения я могу точно сказать, что этот код Котлина работает нормально.

Возможно, проблема в том, что вы просто еще не очень хорошо знаете Kotlin. Частью изучения Kotlin является понимание того, насколько бесполезно использовать Java-классы в коде Kotlin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...