Mam klasy z tym kodem:Jakie są gwarancje dla kwalifikatorów dostępu scala?
package shop.orders.services.email
private[services] class EmailService {...}
Następnie w innym opakowaniu, używam tej klasy:
package shop.ui
import shop.orders.services.email.EmailService
class PaymentConfirmation extends WithFacesContext {
var emailService: EmailService = null
Patrząc na wygenerowanego kodu bajtowego, nie ma śladu modyfikatora dostępu, co ma sens, ponieważ Java nie obsługuje takich ograniczeń dostępu. Co się stanie, jeśli utworzę bibliotekę zawierającą kod taki jak blokowy i spróbuję skompilować blok drugi z biblioteką - nie ma szans, że kompilator się nie powiedzie, ponieważ informacja zostanie utracona. Czy jest zawarty w czymś w rodzaju manifestu?
Używam Scala 2.9.2.
Zakładam, że jest on sprawdzany tylko podczas kompilacji, a nie w czasie wykonywania? –
W środowisku wykonawczym podlegałbyś tylko sprawdzaniu modyfikatora dostępu Java, który w tym przypadku zawsze by się powiódł, ponieważ klasa jest jawna zgodnie z JVM. – yakshaver