Bazı yöntemlerle "Foo" özelliğim var. Bu özelliği herhangi bir sınıfa karıştırmak istiyorum. Ama ben sadece bir sınıf geçmesi nerede gibi bir şey gerekiyorÇalışma zamanında bir Sınıf için belirli bir Özellik Ekleme
val b = new Bar with Foo
gibi bir şey yazmak istemiyorum ve Foo ile karıştırılır. Sadece bu özellik ile karıştırmak istiyorum, çünkü tüm sınıfların sadece Foo özelliği ile karıştırılması gerekiyor.
val b = new Factory(Bar) //Factory returns instance with trait Foo
Bu post buldum ama inanıyorum.
Böyle bir şey scalada mümkün mü?
class Foo(bar:Bar) {
...
}
object Foo {
def apply(bar:Bar) = new Foo(bar)
implicit def backToBar = this.bar
}
Sonra Foo
içinde Foo
ve Bar
, sürüm arasında paylaşılan herhangi bir yöntem adlarında
val foo = Foo(myBar)
olarak kullanmak:
Bu fabrika örneğinde _type_ 'Bar' veya _instance_' Bar' iletiliyor mu? Eğer ikincisiyse, imkansız olsa da, genellikle imkânsız dönüşümler yeterlidir. –
'Bar' türünde –