Почему Netbeans жалуется на двусмысленность, в то время как Intellij вместо этого не

У меня есть kotlin math lib со следующим классом Vec2i и основным конструктором :

 data class Vec2i(override var x: Int, override var y: Int) : Vec2t<Int>() 

Тогда Vec2i также среди нескольких вторичных конструкторов, который должен перехватывать все другие типы номеров :

 constructor(x: Number, y: Number) : this(xi, yi) 

Все под Idea компилируется и запускается. Я тестировал артефакт с отдельным проектом java.

Тот же артефакт не запускается в проекте java, если я переключаю IDE, Netbeans жалуется на двусмысленность между ними.

Зачем?

Изменить: из какого-то дальнейшего анализа выяснилось, что Netbeans жалуется, потому что одна из координат была int , другая Integer . Пробовав то же самое на идее, он говорит:

не может разрешить конструктор

Итак, почему вызов costructor с (int, int) или (Integer, Integer) прекрасен, но (int, Integer) не разрешается вторичному конструктору и вызывает неоднозначность?

Solutions Collecting From Web of "Почему Netbeans жалуется на двусмысленность, в то время как Intellij вместо этого не"

В документации oracles мы видим, что Integer является объектом, который содержит int .

int – примитивный тип, тогда как Integer – объект.

Конструкторы, которые вы разрешаете передавать пару любого типа, но когда вы проходите оба конструктора, не знаете, что делать.

Для получения дополнительной информации у этого вопроса есть хорошая разбивка.