Thông báo: Do Scala 2.11, NotNull
không còn được dùng nữa. Theo như tôi hiểu, nếu bạn muốn một loại tham chiếu không thể vô hiệu hóa, bạn phải trộn các đặc điểm ma thuật NotNull
và trình biên dịch sẽ tự động ngăn bạn đặt các giá trị có thể là null
trong đó. Xem ví dụ này mailing-list thread.Hỗ trợ thư viện cho đặc điểm NotNull của Scala
Điều còn thiếu là thư viện phong nha hỗ trợ các loại không thể vô hiệu. Nếu tôi muốn viết một gói không cần phải trực tiếp mã java và tôi muốn ngăn tất cả các loại trong gói này sử dụng null
theo mặc định, tôi không có lựa chọn nào khác ngoài định nghĩa lại tất cả các biến được tạo như vậy
//can't actually do that, but just to give the general idea
class NString extends String with NotNull
class NMap[X,Y] extends Map[X,Y] with NotNull
...
tôi hy vọng scala có (như là một plugin trình biên dịch, hoặc thư viện) lựa chọn cho tôi để viết
import collections.notnull._
để dễ dàng không cho phép null
sử dụng trong một file scala cụ thể.
Có tùy chọn nào để dễ dàng buộc nhiều loại hữu ích trong thư viện chuẩn không bị vô hiệu không?
Bạn có thể mở rộng chuỗi? Tôi nghĩ rằng nó đã được đánh dấu cuối cùng. –
Thực ra bạn không thể. Điểm tốt. Cần phải xác định NString với chuyển đổi ẩn thành chuỗi tôi đoán. –
Tôi đoán bạn tìm kiếm một cái gì đó như 'org.jetbrains.annotations.NotNull' - và tôi cũng nhớ điều đó. – Martin