Her zaman aynı sınıfın türünü döndüren bir yöntem yapmak için bir yöntem var mı?Scala'da bunun türü
Anlatayım:
class Shape {
var mName: String = null
def named(name: String): Shape = {
mName = name
this
}
}
class Rectangle extends Shape {
override def named(name: String): Rectangle = {
super.named(name)
this
}
}
Bu çalışır, ancak benim alt sınıfların tümünde named
fonksiyonunu geçersiz kılmak zorunda kalmadan bunu yapmanın bir yolu var mı? Bunun gibi bir şey arıyorum (bu işe yaramaz):
class Shape {
var mName: String = null
def named(name: String): classOf[this] = { // Does not work but would be great
mName = name
this
}
}
class Rectangle extends Shape {
}
Herhangi bir fikrin var mı? Yoksa mümkün değil mi?
Tekton türünün, bu “olmayanlar” için kullanılamayacağını belirtmek gerekir. – pedrofurla
@pderofurla: Yol bağımlı türlerle mümkün olabileceği görülüyor, ancak Scala'daki yola bağımlı türler hakkında çok az şey biliyorum ve hala deneysel olup olmadığından emin değilim. –
Bunun yollara bağlı türlerle ilgili olduğunu sanmıyorum. Ve hayır, yola bağımlı türler deneysel değildir. – pedrofurla