#scala #jcombobox #build-error
#scala #jcombobox #ошибка сборки
Вопрос:
Итак, я пытаюсь скомпилировать компилятор scala, я преодолел множество проблем, пытаясь это сделать, но в настоящее время я застрял в quick.lib
Это очень сбивает с толку, поскольку исходный код взят непосредственно у самой команды scala, поэтому я знаю, что он должен скомпилироваться. Также взят старый вариант, который, как я знаю, компилируется в другом месте, и протестирован, но выдает ту же ошибку.
Любая помощь по проблеме или указание правильного направления были бы высоко оценены.
quick.lib:
[scalacfork] Compiling 103 files to C:programmingscalabuildquickclasseslibrary
[scalacfork] C:programmingscalasrcswingscalaswingComboBox.scala:162: error: class JComboBox takes type parameters
[scalacfork] override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingComboBox.scala:123: error: trait ComboBoxModel takes type parameters
[scalacfork] def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingComboBox.scala:124: error: trait ComboBoxModel takes type parameters
[scalacfork] new AbstractListModel with ComboBoxModel {
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingComboBox.scala:134: error: type mismatch;
[scalacfork] found : AnyRef
[scalacfork] required: Nothing
[scalacfork] def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingComboBox.scala:162: error: too many arguments for constructor Object: ()Object
[scalacfork] override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:32: error: trait ListCellRenderer takes type parameters
[scalacfork] def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r)
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:27: error: class JList takes type parameters
[scalacfork] def wrap[A](c: JList) = new ListView[A] {
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:145: error: class JList takes type parameters
[scalacfork] override lazy val peer: JList = new JList with SuperMixin
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:37: error: trait ListCellRenderer takes type parameters
[scalacfork] class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] {
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork] def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork] def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:73: error: class JList takes type parameters
[scalacfork] def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) =
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:126: error: trait ListCellRenderer takes type parameters
[scalacfork] override lazy val peer: ListCellRenderer = new DefaultListCellRenderer
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:153: error: type mismatch;
[scalacfork] found : AnyRef
[scalacfork] required: Nothing
[scalacfork] def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork] ^
[scalacfork] C:programmingscalasrcswingscalaswingListView.scala:195: error: too many arguments for constructor Object: ()Object
[scalacfork] object indices extends Indices(peer.getSelectedIndices) {
[scalacfork] ^
[scalacfork] 15 errors found
Ответ №1:
Используете ли вы JDK7? Одна из «проблем» заключается в том, что JDK7 добавил дженерики в некоторые API Swing, и это несовместимо с тем, как работает scala. Использование JDK6 поможет.
Немного больше об этом можно найти по адресу: https://groups.google.com/d/topic/scala-user/01CszZu8ga4/discussion
Комментарии:
1. Вчера я дважды пытался ответить на этот вопрос сам, но это мне не позволило. Оказывается, исправление заключалось в переключении на jdk6. Отличная работа для получения правильного ответа, но я разобрался с этим прошлой ночью. Просто хотелось бы, чтобы этот сайт позволил мне быстрее ответить на мой собственный вопрос = p Хорошее объяснение того, почему это происходило. Теперь я действительно понимаю, почему.
2. @Blue42, вы потеряете очки, ответив на свой собственный вопрос 😉