Scala'ya taşıdığım ancak hala işlevselliği uygulayan bazı Java alt sınıfları olan bir Java sınıfım var.Scala'da Java korumalı bir yöntem oluşturabilir miyim?
orijinal Java Scala
içinpublic class Fred extends Base {
...
protected Foo getFoo() {
return foo;
}
}
Şimdi ben liman Bankası uzatıldı
public abstract class Base {
...
protected abstract Foo getFoo();
}
vardı
class Base {
...
protected def getFoo(): Foo
}
derleyici şikayet olduğunu
kuralları kurnazca farklı olduğu için, Scala derleyici yerine byte görünürlüğünü zorlamak eğiliminde olduğunu getFoo böylece,
şimdi anlıyorum ... kalıtsal yöntemin görünürlüğünü azaltmak olamaz javap'd sınıfında herkese açık olarak işaretlendi. Ben görünürlük aynı olması gerektiğini düşünüyorum rağmen Ama
protected[packagename] def getFoo()
hala bir hakiki (Java) korumalı yöntemi oluşturmaz.
Scala derleyicisini Java'nın korumayı düşündüğü bir yöntemi yaymaya ikna etmenin bir yolu var mı?
Yetkili bir 'Hayır' kabul edeceğim –
Mükemmel bir soru. Bu sayfaya ulaşmadan önce aynı yolu takip ettim. – ebruchez