У меня странная ошибка компиляции. Оскорбительные строки:
val comboBoxLanguage = new javax.swing.JComboBox
//...
comboBoxLanguage.setModel(new javax.swing.DefaultComboBoxModel(
Array[Object]("Scala", "Java")))
и ошибка:
error: type mismatch;
found : Array[java.lang.Object]
required: Array[Nothing with java.lang.Object]
Note: java.lang.Object >: Nothing with java.lang.Object, but class Array is invariant in type T.
You may wish to investigate a wildcard type such as `_ >: Nothing with java.lang.Object`. (SLS 3.2.10)
comboBoxLanguage.setModel(new javax.swing.DefaultComboBoxModel( Array[Object]("Scala", "Java")))
Согласно JavaDoc, конструктор DefaultComboBoxModel
ожидает Object []
, который может быть String []
или любым другим типом массива в Java, поскольку массивы ковариантны, но в Scala нет, поэтому мы должны использовать Array [Object]
, что не должно ' это проблема.
Почему компилятор ожидает Array [Ничего с java.lang.Object]
? Как я могу это исправить?
Это кажется новым в версии 2.9.1 of Scala. Мое приложение компилировалось, пока я не установил 2.9.1 пару дней назад. Непонятно / беспокоит то, что я не изменил версию библиотеки компилятора проекта в IntelliJ, но каким-то образом кажется, что он ее использует, возможно это из моего SCA Переменная среды LA_HOME?