私はこのコードを持つクラスを持っている:スカラーアクセス修飾子の保証は何ですか?
package shop.orders.services.email
private[services] class EmailService {...}
は、次に別のパッケージには、私はそのクラスを使用します。
package shop.ui
import shop.orders.services.email.EmailService
class PaymentConfirmation extends WithFacesContext {
var emailService: EmailService = null
は、生成されたバイトコードを見ると、いずれのアクセス修飾子の兆候はありません、 Javaはそのようなアクセス制限をサポートしていないため、意味があります。では、ブロック1のようなコードを含むライブラリを作成し、ブロック2をライブラリに対してコンパイルしようとすると、情報が失われるためコンパイラが失敗することはありません。それともマニフェストのようなものに含まれていますか?
私はScala 2.9.2を使用しています。
コンパイル時には実行時のみチェックされているとしますか? –
実行時には、Javaアクセス修飾子のチェックを受けることになります。この場合、このクラスはJVMに従ってパブリックなので、この場合は常に成功します。 – yakshaver