Tôi có một lớp với mã này:Các đảm bảo cho vòng loại truy cập scala là gì?
package shop.orders.services.email
private[services] class EmailService {...}
Sau đó, trong một gói phần mềm khác nhau, tôi sử dụng lớp đó:
package shop.ui
import shop.orders.services.email.EmailService
class PaymentConfirmation extends WithFacesContext {
var emailService: EmailService = null
Nhìn vào bytecode tạo ra, không có dấu hiệu của bất kỳ sửa đổi lần truy cập, điều này có ý nghĩa, vì Java không hỗ trợ các hạn chế truy cập như vậy. Vì vậy, điều gì sẽ xảy ra nếu tôi tạo một thư viện chứa mã như khối một, và cố gắng biên dịch khối hai đối với thư viện - không có khả năng trình biên dịch sẽ thất bại, vì thông tin bị mất. Hoặc nó có chứa trong một cái gì đó giống như một biểu hiện?
Tôi đang sử dụng Scala 2.9.2.
Tôi giả sử chỉ kiểm tra tại thời gian biên dịch và không chạy? –
Khi chạy, bạn sẽ chỉ phải kiểm tra trình sửa đổi truy cập Java trong trường hợp này sẽ luôn thành công, vì lớp này là công khai theo JVM. – yakshaver