Intereting Posts
AndroidStudio / Kotlin – Неразрешенная ссылка: ReadWriteProperty – Kotlin версия 1.0.0-beta-1038 Лучшая практика для преобразования java-кода, используемого для копирования файлов с файлами в кеш-папку в Android на Kotlin Ошибка изображения элемента RecyclerView Как получить класс java из общего параметра param? Котлин: пропуская коротины UnsupportedOperationException Команда «android» больше не включена в SDK Kotlin – функции расширения и типы платформ? Отражение Котлина – получение всех названий полей класса Изображение не отображается в Activity (это нормально в AppCompatActivity) Как проверить класс с анонимным прослушивателем, который установлен внутри функции? Установка текста в EditText Kotlin, Android Как поместить элемент на карту и вернуть карту Kotlin & Anko сопрограммы: возвращение вне асинхронного Как я могу создать проект Kotlin, который строится вместе с Gradle? Android LiveData Observer не активен после первого обновления

Почему 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 – объект.

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

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