Почему параметр Integer метода Java отображается на Int, а не на тип платформы?

ВдохновленныйДругой вопрос.

Вfastutil библиотека естьIntArrayList класс, у которого есть метод со следующей подписью Java:

public void push(Integer o)

Из Котлина это видно как

push(o: Int)

Есть ли конкретная причина, почему этоInt а не тип платформыInt!?

Я ожидал, что это будетpush(o: Int!) хотя бы потому, что метод с той же сигнатурой, определенной в источнике Java в проекте с источниками Kotlin, имеетInt! как тип параметра, видимый из Kotlin (даже определенный в другом модуле и даже импортированный из jar этого модуля!).

Также описанное поведение вызываетpush(Integer o) конфликтовать сpush(int o) (в том же классе), который имеетInt параметр юридически - они оба рассматриваются какpush(o: Int), Если бы былInt! заInteger, не было бы никакого конфликта (я попытался также определить эту пару методов в моем коде - все еще работает, как я ожидаю, естьInt!).

Котлин версия есть1.0.2.

Gradle зависимость дляfastutil:

compile group: 'it.unimi.dsi', name: 'fastutil', version: '7.0.12'

Ответы на вопрос(1)

Ваш ответ на вопрос