可以使用以下代码在控制台中重现错误。
case class SomeClass(name: String)
abstract class Factory() {
protected def create[U](name: String) : U
}
class SomeFactory extends Factory() {
override def create[SomeClass](name: String) = SomeClass(name)
}
< console>:11:错误:类型不匹配;
发现:SomeClass(在对象$ iw中) required:SomeClass(在方法创建中) override def create [SomeClass](name:String)= SomeClass(name)
答案 0 :(得分:4)
似乎这就是你想要实现的目标:
case class SomeClass(name: String)
abstract class Factory[U]() {
protected def create(name: String) : U
}
class SomeFactory extends Factory[SomeClass] {
def create(name: String) = SomeClass(name)
}
(我假设你的意思是SomeFactory
扩展Factory
)