Ho una classe con questo codice:Quali sono le garanzie per i qualificatori di accesso scala?
package shop.orders.services.email
private[services] class EmailService {...}
Poi in un pacchetto differente, io uso quella classe:
package shop.ui
import shop.orders.services.email.EmailService
class PaymentConfirmation extends WithFacesContext {
var emailService: EmailService = null
Guardando il bytecode generato, non v'è alcun segno di modificatore di accesso, il che ha senso, poiché Java non supporta tali restrizioni di accesso. Quindi, cosa succede se creo una libreria che contiene il codice come il blocco uno e cerco di compilare il blocco due contro la libreria - non c'è alcuna possibilità che il compilatore fallisca, poiché l'informazione è persa. O è contenuto in qualcosa come un manifest?
Sto usando Scala 2.9.2.
Presumo che sia stato controllato solo in fase di compilazione e non in fase di esecuzione? –
In fase di runtime, saresti soggetto solo al controllo del modificatore di accesso Java che in questo caso avrebbe sempre esito positivo, poiché la classe è pubblica secondo la JVM. – yakshaver