Tôi đang làm việc trên dự án Scala đang nhập hai thư viện java. Thông qua kế hoạch kém, hai thư viện java có tên gói tương tự, một với com ở phía trước, một không có.Nhập gói java Scala java thêm
Vấn đề là Scala đang tìm gói với com ở phía trước đầu tiên, và nói với tôi rằng gói không tồn tại. Nếu tôi loại bỏ tất cả các tham chiếu đến thư viện với com ở phía trước của gói, biên dịch hoạt động.
Để hiển thị một ví dụ có ý nghĩa:
Trong foo.jar chúng ta có một gói company.product.core
Trong bar.jar chúng tôi có một com.company.product.other gói.
Nếu cả hai lọ là trên classpath, dòng:
import company.product.core.ClassName
Thất bại với lỗi "giá trị cốt lõi không phải là thành viên của gói com.companyname.product" Nếu chúng ta loại bỏ bar.jar, các biên dịch hoạt động tốt.
Scala có đang cố gắng cứu tôi khỏi việc nhập com không? Có cách nào để nói với nó để nhập khẩu chỉ những gì tôi nói với nó?
Điều này có hiệu quả, nhưng tôi tò mò là tại sao Scala thực hiện việc này? – Jeff
Scala cho phép đối sánh tương đối từ lần nhập gói trước. Giống như, sau khi "nhập scala.collection._" bạn chỉ có thể gọi "import mutable._" để nhận "scala.collection.mutable._". Nó gây ra rất nhiều điều thú vị với tên gói "net". –
@Tristan import collection._ cũng hoạt động (scala đã được nhập) –