2011-11-09 2 views
3

그래서 내가 스칼라 컴파일러를 컴파일하기 위해 노력하고있어, 나는이 작업이 완료려고 많은 문제를 극복했지만 나는 현재 quick.lib에 붙어스칼라 컴파일러 빌드 오류 JComboBox의 유형 매개 변수

이 매우 혼란 소스는 스칼라 팀에서 직접 가져 와서 컴파일해야한다는 것을 알고 있습니다. 또한 다른 곳에서 컴파일하는 것을 알고 테스트 한 이전 버전을 가져 왔지만 동일한 오류가 발생합니다.

문제에 대한 도움이나 올바른 방향의 요점을 알려 주시면 대단히 감사하겠습니다.

quick.lib: 
[scalacfork] Compiling 103 files to C:\programming\scala\build\quick\classes\library 
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: class JComboBox takes type parameters 
[scalacfork] override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin 
[scalacfork]       ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:123: error: trait ComboBoxModel takes type parameters 
[scalacfork] def newConstantModel[A](items: Seq[A]): ComboBoxModel = { 
[scalacfork]           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:124: error: trait ComboBoxModel takes type parameters 
[scalacfork]  new AbstractListModel with ComboBoxModel { 
[scalacfork]        ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:134: error: type mismatch; 
[scalacfork] found : AnyRef 
[scalacfork] required: Nothing 
[scalacfork]  def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef] 
[scalacfork]              ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.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:\programming\scala\src\swing\scala\swing\ListView.scala:32: error: trait ListCellRenderer takes type parameters 
[scalacfork]  def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r) 
[scalacfork]     ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:27: error: class JList takes type parameters 
[scalacfork] def wrap[A](c: JList) = new ListView[A] { 
[scalacfork]    ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:145: error: class JList takes type parameters 
[scalacfork] override lazy val peer: JList = new JList with SuperMixin 
[scalacfork]       ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:37: error: trait ListCellRenderer takes type parameters 
[scalacfork] class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] { 
[scalacfork]           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters 
[scalacfork]  def peer: ListCellRenderer = new ListCellRenderer { 
[scalacfork]    ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters 
[scalacfork]  def peer: ListCellRenderer = new ListCellRenderer { 
[scalacfork]         ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:73: error: class JList takes type parameters 
[scalacfork]  def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) = 
[scalacfork]           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:126: error: trait ListCellRenderer takes type parameters 
[scalacfork]  override lazy val peer: ListCellRenderer = new DefaultListCellRenderer 
[scalacfork]       ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:153: error: type mismatch; 
[scalacfork] found : AnyRef 
[scalacfork] required: Nothing 
[scalacfork]  def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef] 
[scalacfork]             ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:195: error: too many arguments for constructor Object:()Object 
[scalacfork]  object indices extends Indices(peer.getSelectedIndices) { 
[scalacfork]     ^
[scalacfork] 15 errors found 

답변

5

JDK7을 사용하고 있습니까? 'Issues'에 관한 한 가지는 JDK7이 일부 Swing API에 제네릭을 추가했기 때문에 scala가 작동하는 방식과 호환되지 않는다는 것입니다. JDK6을 사용하면 도움이됩니다. https://groups.google.com/d/topic/scala-user/01CszZu8ga4/discussion

+0

내가 두 번, 어제이 나 자신에 대답했지만, 그것은 나를 못하게 것 : 이것에 대해

조금 더에서 찾을 수 있습니다. JDK6로 전환하는 것이 수정되었습니다. 정확한 답변을 얻으 려니 너무 근사하지만 어젯밤에 정리했습니다. 이 사이트가 내 자신의 질문에 더 빨리 답할 수 있기를 바란다. 왜 그런 일이 일어 났는지에 대한 좋은 설명. 이제 실제로 그 이유를 이해합니다. – Blue42

+0

@ Blue42, 질문에 대답 할 때 느슨한 점이 있습니다;) – Johnydep