Массив [Ничего с java.lang.Object] требуется в Scala 2.9.1

У меня странная ошибка компиляции. Оскорбительные строки:

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?

6
задан Luigi a.k.a. Rhys 22 November 2011 в 05:29
поделиться