extends
scala 2.10.2 では、クラスからのコードがあり、次のscala.swing.ListView[SomeClass]
エラーが発生します。
src/some.scala:100: error: class Some_Renderer needs to be abstract, since method componentFor in class Renderer of type (list: scala.swing.ListView[_ <: SomeClass], isSelected: Boolean, focused: Boolean, a: SomeClass, index: Int)scala.swing.Component is not defined
private class Some_Renderer extends ListView.Renderer[SomeClass]
編集:「余分なメモ」は、実際にはここでのエラーです。コメントされているB[String]
必要がありますB[_]
。
編集:いくつかの実際の例は次のとおりです
追加の注記がありますが、次の例として再現しました。
scala> class B[A] { val m : Int = 0 }
defined class B
scala> abstract class C[A] { def f(l: B[_]):Int }
defined class C
scala> private class D extends C[String] { def f(l: B[String]):Int = { l.m } }
<console>:9: error: class D needs to be abstract, since method f in class C of type (l: B[_])Int is not defined
(Note that B[_] does not match B[String]: their type parameters differ)
private class D extends C[String] { def f(l: B[String]):Int = { l.m } }
編集:MWE
import scala.swing.{Component, Label, ListView}
class Test
object Retn extends Label { opaque = false }
private class TestRenderer extends ListView.Renderer[Test]
{
def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, test: Test, index: Int): Component =
{
val retn = Retn
retn
}
}
<console>:9: error: class TestRenderer needs to be abstract, since method componentFor in class Renderer of type (list: scala.swing.ListView[_ <: Test], isSelected: Boolean, focused: Boolean, a: Test, index: Int)scala.swing.Component is not defined
private class TestRenderer extends ListView.Renderer[Test]
^
編集:MWE
私はそのコード行にパッチを当てようとしているだけで、scala
プログラミングは一切行っていません。しかし、この例の問題点がわかりません。同様の質問を見つけましたが、このアンダースコア (" _
") のものではありません。
f
この例では、 class からの抽象メソッドの実装を提供しようとしていますC[A]
。
この問題に関するコメントまたは回答をありがとうございます。